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

为javascript中的每个元素添加一个值,javascript,Javascript,在javascript中,有没有一种好方法可以向数组中的每个元素添加特定的值?从本质上讲,这应该是编写以下内容的更好方式: a = [1,2,3,4]; for (i = 0; i < a.length; i++) { a[i] += 7; } a=[1,2,3,4]; 对于(i=0;i

在javascript中,有没有一种好方法可以向数组中的每个元素添加特定的值?从本质上讲,这应该是编写以下内容的更好方式:

      a = [1,2,3,4];
      for (i = 0; i < a.length; i++) {
          a[i] += 7;
      }
a=[1,2,3,4];
对于(i=0;i
可能使用地图(但不一定)

编辑:

或者一个更有趣的例子:

      a = [{'x':1},{'x':2},{'x':3},{'x':4}];

      for (i = 0; i < a.length; i++) {
          a[i].x += 7;
      }
a=[{'x':1},{'x':2},{'x':3},{'x':4}];
对于(i=0;i
是的,您可以使用
.map
但它不会在适当的位置修改数组,因此您必须将结果分配给
a

a = a.map(function(x) { return x+7 });

是的,您可以使用
.map
,但它不会就地修改数组,因此您必须将结果分配给
a

a = a.map(function(x) { return x+7 });
您可以使用
map
来执行此操作:

a = a.map(function(entry) {
    return entry + 7;
});
我不认为创建一个新数组比更新现有数组“更好”

您还可以使用forEach的

a.forEach(function(entry, index) {
    a[index] += 7;
});
它仍然是一堆函数调用(但是),但与
循环相比,它的优点是不必声明索引变量,而且您正在修改现有数组而不是替换它


编辑:您的“最有趣”示例进一步说明,
map
并不是最佳选择

a.forEach(function(entry) {
    entry.x += 7;
});
您可以使用
map
来执行此操作:

a = a.map(function(entry) {
    return entry + 7;
});
我不认为创建一个新数组比更新现有数组“更好”

您还可以使用forEach的

a.forEach(function(entry, index) {
    a[index] += 7;
});
它仍然是一堆函数调用(但是),但与
循环相比,它的优点是不必声明索引变量,而且您正在修改现有数组而不是替换它


编辑:您的“最有趣”示例进一步说明,
map
并不是最佳选择

a.forEach(function(entry) {
    entry.x += 7;
});

事实上,无论哪种方式,你都在做同样的事情。但是在更少的(代码)空间里!!希望:)在现实中,无论哪种方式,你都在做同样的事情。但是在更少的(代码)空间里!!希望:)
forEach
似乎就是我要找的。谢谢
forEach
似乎就是我要找的。谢谢