在javascript中为每个元素添加一个值

时间:2014-10-13 20:55:35

标签: javascript

有没有一种很好的方法可以在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;
      }

2 个答案:

答案 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;
});