有没有一种很好的方法可以在javascript中为数组中的每个元素添加特定值?从本质上讲,这应该是编写以下内容的更好方法:
a = [1,2,3,4];
for (i = 0; i < a.length; i++) {
a[i] += 7;
}
也许使用地图(但不一定)?
编辑:
或者一个更有趣的例子:
a = [{'x':1},{'x':2},{'x':3},{'x':4}];
for (i = 0; i < a.length; i++) {
a[i].x += 7;
}
答案 0 :(得分:2)
是的,您可以使用.map
但不会就地修改数组,因此您必须将结果分配给a
:
a = a.map(function(x) { return x+7 });
答案 1 :(得分:2)
你可以使用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;
});