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

标签 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 不是函数(...)” 这是为什么?

最佳答案

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

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

关于javascript - 为什么这个 .map 函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38730706/

相关文章:

javascript - d3如何制作单个堆积柱形图

javascript - 如何通过打印推断的变量类型来调试 TypeScript?

javascript - Angular 单元在 $attr 上测试 $watch

javascript - 如何拆分字符串并从中获取数字?

javascript - 在 ReactJS 中隐藏条件文本

javascript - 在 create-react-app 构建中使用 chrome 存储 API

javascript - 使用从参数派生的类名切换 div

javascript - 卸载时关闭浏览器窗口

javascript - 是否可以放大 OpenLayers 中的基础层?

javascript - 如何在 DIV 元素上滚动时禁用页面滚动并在计数器达到特定值时启用滚动