#javascript #arrays
#javascript #массивы
Вопрос:
Функция getImageData возвращает специальный объект array с именем Uint8ClampedArray
, который наследует многие из знакомых методов array. ForEach
указывает на универсальный метод.
Давайте попробуем один:
var g = new Uint8ClampedArray([1,2,3,4,5]);
undefined
g
[1, 2, 3, 4, 5]
g.forEach(function(x){ return x 1; } )
undefined
g
[1, 2, 3, 4, 5]
Ничего не произошло. Ответ должен быть [2,3,4,5,6]
что здесь не так?
Это было сделано в терминале JavaScript Chrome — в инструментах разработчика.
Также я нашел это полезным:
Uint8ClampedArray
Типизированный массив представляет собой массив 8-разрядных целых чисел без знака, сжатых до 0-255; если вы указали значение, выходящее за пределы диапазона [0,255], вместо него будет установлено 0 или 255. Содержимое инициализируется значением 0. После установки вы можете ссылаться на элементы в массиве, используя методы объекта или используя стандартный синтаксис индекса массива (то есть, используя обозначение в скобках).
Комментарии:
1.
forEach
ничего не возвращает. Я думаю, вы ищетеmap
, хотите ли вы выполнить какое-то преобразование 1-1. В документах, на которые вы ссылались, вы можете видеть, что он возвращаетundefined
дляforEach
.2. forEach использует вызов по значению, а не вызов по ссылке, поэтому начальное значение x внутри массива не может быть изменено с помощью forEach. Вы можете просто использовать цикл for.
Ответ №1:
forEach
не возвращает никакого значения, это в основном просто цикл for над содержимым. Если вы хотите выполнить преобразование 1-1 и вернуть новый массив, тогда используйте map
метод.