为什么这个.map函数不起作用

时间:2016-08-02 21:24:13

标签: javascript

这是一个非常简单的.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不是函数(...)" 这是为什么?

1 个答案:

答案 0 :(得分:4)

这是因为str是一个字符串,而字符串没有map()函数。

map()是数组类型的函数。