javascript设置对象数组中的所有值

标签 javascript arrays

关于类似问题的两部分问题。我有 2 个不同的数组,

数组 1:

 array1 = [{
     name : "users",
     checked : true
   }, {
     name : "active users",
     checked : false
   }, {
     name : "completions",
     checked : false
   }]

我想知道是否有一种简单的方法可以立即将所有选中的值设置为 true。我知道这可以通过 for 循环实现:

  for (var i = 0 ; i < array.length ; i++) {
    array[i].checked = false
  }

尽管这不是很多代码,但我只是好奇是否有一种方法可以在不遍历数组中的每个对象的情况下执行此操作。 (不确定这是否可能,或者这是否有任何不同,所以如果我对此有任何错误,请纠正我)。

数组 2:

array2 = [{
     value1 : false,
     value2 : true,
     value3 : false,
     value4 : false, 
     value5 : false,   
   }]

是否可以一次简单地将所有值设置为 true 或 false(同样我可以使用 for 循环,但我不想这样做)

(我正在使用 angular 和 lodash,但一直无法找到“lodash”或“angular”解决方案,但任何解决方案都可以)

最佳答案

如果不遍历元素就无法做到这一点,但是您可以使用函数抽象来代替 for:

对于数组 1,您可以使用 map

array1.map(function(x) { 
  x.checked = true; 
  return x
});

或使用 _.map来自 lodash:

_.map(array1, function(x) { 
  x.checked = true; 
  return x
});

对于数组 2,您可以使用 _.mapValues来自 lodash。

_.mapValues(array2[0], function() {
  return true;
});

你可以看到 lodash 在 https://github.com/lodash/lodash/blob/a1b15df6489f47498edda244552c9804e046a45d/lodash.js#L3125 处使用 while 实现了 _.map

关于javascript设置对象数组中的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30098942/

相关文章:

javascript - 当文本区域包含更改而不保存更改时如何获得警报?

C++ 混合对象数组

我可以像这样初始化一个空的 2D C 字符串吗?

arrays - SGE 数组作业和 R

javascript - 如何从 jQuery ajax 调用返回和使用字符串数组?

javascript - 如何在同一页面上使用多个图像 slider ?

javascript - Aurelia JS 依赖项

javascript - 使用 jquery 包装

mysql - 更新数组中的 mysql json 字段

javascript - 为什么javascript数组项自动删除