3 回答
TA贡献1801条经验 获得超8个赞
回调传递给元素,索引和数组本身。
arr.forEach(function(part, index, theArray) {
theArray[index] = "hello world";
});
编辑 —如注释中所述,该.forEach()函数可以采用第二个参数,该参数将用作this每次对回调的调用中的值:
arr.forEach(function(part, index) {
this[index] = "hello world";
}, arr); // use arr as this
第二个示例显示了arr自己this在回调中的设置。有人可能会认为.forEach()调用中涉及的数组可能是的默认值this,但无论出于何种原因,它都不是。this会undefined如果没有提供第二个参数。
同样重要的是要记住,Array原型上提供了一整套类似的实用程序,并且在Stackoverflow上弹出了有关一个或另一个功能的许多问题,因此最好的解决方案是简单地选择其他工具。你有:
forEach 用于处理数组中的每个条目或对数组中的每个条目执行操作;
filter 用于产生仅包含合格条目的新数组;
map 用于通过变换现有阵列来制作一对一的新阵列;
some 检查数组中的至少一个元素是否符合某些描述;
every检查数组中的所有条目是否与描述相匹配;
find 在数组中寻找一个值
TA贡献1816条经验 获得超6个赞
数组:[1, 2, 3, 4]
结果:["foo1", "foo2", "foo3", "foo4"]
Array.prototype.map() 保留原始阵列
const originalArr = ["Iron", "Super", "Ant", "Aqua"];
const modifiedArr = originalArr.map(name => `${name}man`);
console.log( "Original: %s", originalArr );
console.log( "Modified: %s", modifiedArr );
Array.prototype.forEach() 覆盖原始数组
const originalArr = ["Iron", "Super", "Ant", "Aqua"];
originalArr.forEach((name, index) => originalArr[index] = `${name}man`);
console.log( "Overridden: %s", originalArr );
添加回答
举报