Существует эта довольно простая .map
функцияПочему это .map функция не работает
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
Это имеет смысл, я выполняю на numbers
функцию карты и обеспечивают функцию, которая будет перебирать по каждому элементу в массиве ,
В этом следующем примере (все это взято из mozilla, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), я подумал: зачем нам использовать Array.prototype.map.call
, может быть, они просто демонстрируют разные способы достижения той же цели.
var str = '12345';
Array.prototype.map.call(str, function(x) {
return x;
}).reverse().join('');
Так что я переписал это как
var str = '12345';
var stringy = str.map(function(x) {
return x;
}).reverse().join('');
Только я получаю сообщение об ошибке "str.map не является функцией (...)" Почему это?
Должно ли это быть 'str.split (" "). Map()'? Если я не ошибаюсь, ['map()'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) предназначен для массивов, а не строк –
'str' не является массивом, поэтому он не имеет метода« map ». 'Array.prototype.map.call' преобразует строку в массив. – undefined
@LambdaNinja Вы должны разместить это как ответ. – Santi