这是一个非常简单的.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不是函数(...)" 这是为什么?
答案 0 :(得分:4)
这是因为str
是一个字符串,而字符串没有map()
函数。
map()
是数组类型的函数。