有没有什么好的方法可以在javascript中为数组中的每个元素添加一定的值?从本质上讲,这应该是一种更好的写法:
a = [1,2,3,4];
for (i = 0; i < a.length; i++) {
a[i] += 7;
}
也许使用 map (但不一定)?
编辑:
或者更有趣的例子:
a = [{'x':1},{'x':2},{'x':3},{'x':4}];
for (i = 0; i < a.length; i++) {
a[i].x += 7;
}
最佳答案
您可以使用map
来做到这一点:
a = a.map(function(entry) {
return entry + 7;
});
我看不出创建一个新数组比更新现有数组“更好”。
你也可以使用forEach
:
a.forEach(function(entry, index) {
a[index] += 7;
});
它仍然是一堆函数调用(但是是 that's not a problem ),但是您拥有不必声明索引变量的优势(相对于 for
循环),并且您正在修改现有数组而不是替换它。
编辑:您的“最有趣”示例更能说明 map
并不是真正的最佳选择。
a.forEach(function(entry) {
entry.x += 7;
});
关于javascript - 为javascript中的每个元素添加一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26348737/