关于类似问题的两部分问题。我有 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/