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

标签 javascript

有没有什么好的方法可以在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/

相关文章:

javascript - JCarousel 滚动方法并不总是触发

javascript - 如何使用正则表达式替换字符串的一部分

javascript - 不使用 jquery 获取带有类名的下一个元素

javascript - 两个选择框 - 按选择加载

javascript - 无法识别 Protractor 中的 css/xpath 元素

javascript - 标签 'width' 中的属性 'amp-carousel' 设置为无效值 'auto'

javascript - MediaRecorder.ondataavailable 数据返回 0

javascript - 在函数中按值传递对象

javascript - 错误: $injector:unpr Unknown Provider (app. js似乎定义正确)

PHP 或 Javascript :Check if cookie is set, 如果它是改变 <li> 的内容