Espruino:Справочник по API/Класс E/mapInPlace(): различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 7: | Строка 7: | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
E.mapInPlace(from, to, map, bits) | E.mapInPlace(from, to, map, bits) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 28: | Строка 28: | ||
Во-первых, функция '''E.mapInPlace()''' может воспользоваться массивом: | Во-первых, функция '''E.mapInPlace()''' может воспользоваться массивом: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
var a = new Uint8Array([1,2,3,1,2,3]); | var a = new Uint8Array([1,2,3,1,2,3]); | ||
var lut = new Uint8Array([128,129,130,131]); | var lut = new Uint8Array([128,129,130,131]); | ||
Строка 37: | Строка 37: | ||
А во-вторых, она может воспользоваться ''undefined'', чтобы выполнить сквозной проход, или функцией, чтобы выполнить обычную трансформацию. | А во-вторых, она может воспользоваться ''undefined'', чтобы выполнить сквозной проход, или функцией, чтобы выполнить обычную трансформацию. | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
var a = new Uint8Array([0x12,0x34,0x56,0x78]); | var a = new Uint8Array([0x12,0x34,0x56,0x78]); | ||
var b = new Uint8Array(8); | var b = new Uint8Array(8); |
Версия от 18:28, 14 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция E.mapInPlace()[1]
Синтаксис
E.mapInPlace(from, to, map, bits)
Параметры
- from – объект ArrayBuffer, из которого нужно прочесть элементы
- to – объект ArrayBuffer, в который надо записать элементы
- map – массив или function(value,index), используемая для трансформации массива, или undefined, чтобы не выполнять никакой трансформации
- bits – будучи заданным, этот аргумент означает количество битов на один элемент (первый – самый старший бит). В противном случае будет использовано соотношение 1:1. Если задать здесь отрицательное значение, первым будет самый младший бит
Возвращаемое значение
Нет.
Описание
Берет каждый элемент из массива from, сверяет его с массивом в map (или вызывает map(value,index), если это функция), а затем записывает результат в соответствующий элемент массива to.
Во-первых, функция E.mapInPlace() может воспользоваться массивом:
var a = new Uint8Array([1,2,3,1,2,3]);
var lut = new Uint8Array([128,129,130,131]);
E.mapInPlace(a, a, lut);
// a = [129, 130, 131, 129, 130, 131]
А во-вторых, она может воспользоваться undefined, чтобы выполнить сквозной проход, или функцией, чтобы выполнить обычную трансформацию.
var a = new Uint8Array([0x12,0x34,0x56,0x78]);
var b = new Uint8Array(8);
E.mapInPlace(a, b, undefined); // сквозной проход
// b = [0x12,0x34,0x56,0x78,0,0,0,0]
E.mapInPlace(a, b, (value,index)=>index); // пишем индекс
// в первые 4 элемента
// (потому что a.length==4)
// b = [0,1,2,3,4,0,0,0]
E.mapInPlace(a, b, undefined, 4); // 4 бита на элемент,
// 8-битные вводные данные ->
// в 2 раза больше данных на выходе
// порядок – от старшего к младшему
// b = [1, 2, 3, 4, 5, 6, 7, 8]
E.mapInPlace(a, b, undefined, -4); // 4 бита на элемент,
// 8-битные вводные данные ->
// в 2 раза больше данных на выходе
// порядок – от младшего к старшему
// b = [2, 1, 4, 3, 6, 5, 8, 7]
E.mapInPlace(a, b, a=>a+2, 4);
// b = [3, 4, 5, 6, 7, 8, 9, 10]
var b = new Uint16Array(4);
E.mapInPlace(a, b, undefined, 12); // 12 битов на элемент,
// 8-битные вводные данные,
// порядок - от старшего к младшему
// b = [0x123, 0x456, 0x780, 0]
E.mapInPlace(a, b, undefined, -12); // 12 битов на элемент,
// 8-битные вводные данные,
// порядок – от младшего
// к старшему
// b = [0x412, 0x563, 0x078, 0]
Примечание: Эта функция не доступна на устройствах с маленькой flash-памятью.
См.также
Внешние ссылки