为javascript中的每个元素添加一个值
在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
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
似乎就是我要找的。谢谢