有这个很简单.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