javascript设置对象数组中的所有值
关于类似问题的两部分问题。我有两个不同的阵列 数组1:javascript设置对象数组中的所有值,javascript,arrays,Javascript,Arrays,关于类似问题的两部分问题。我有两个不同的阵列 数组1: array1 = [{ name : "users", checked : true }, { name : "active users", checked : false }, { name : "completions", checked : false }] array2 = [{ value1 : false, value2 : t
array1 = [{
name : "users",
checked : true
}, {
name : "active users",
checked : false
}, {
name : "completions",
checked : false
}]
array2 = [{
value1 : false,
value2 : true,
value3 : false,
value4 : false,
value5 : false,
}]
我想知道是否有一种简单的方法可以一次将所有检查值设置为true。我知道这在for循环中是可能的:
for (var i = 0 ; i < array.length ; i++) {
array[i].checked = false
}
是否可以一次将所有值设置为true或false(同样,我可以使用for循环,但不希望如此)
(我正在使用angular和lodash,但还没有找到“lodash”或“angular”解决方案,但任何解决方案都可以)如果不在元素上循环,就不能这样做,但是可以使用函数抽象来代替
:
对于数组1,可以使用
或使用lodash:
_.map(array1, function(x) {
x.checked = true;
return x
});
对于数组2,可以使用lodash
_.mapValues(array2[0], function() {
return true;
});
您可以看到,lodash使用实现。
,而在中,如果不按您在问题中提到的那样迭代(循环)数组,则无法设置数组中每个对象的值
尽管这不是很多代码,我只是好奇是否有一种方法可以做到这一点,而不必迭代数组中的每个对象。(不确定这是否可能,或者这是否有任何区别,因此,如果我在这方面有任何错误,请纠正我)
是否可以一次将所有值设置为true或false
(同样,我可以使用for循环,但不希望使用)
不!如果不参观每个城镇,就不能参观所有城镇。
jQuery有一些快捷方式,比如$。每个
和lodash都像.map
,但它只是一个函数,与for循环类似。您可以使用es6 fat arrow创建一个线性,但它仍然涉及迭代
array1.map(a=>a.checked=true);
array1=[{
名称:“用户”,
核对:正确
}, {
名称:“活动用户”,
勾选:假
}, {
名称:“完成”,
勾选:假
}]
array1.map(a=>a.checked=true);
控制台日志(array1)代码>@RayonDabre是的,我相信没有逃避。forEach更适合这种情况。除非有必要创建一个新的对象数组,而.map有效地做到了这一点。我知道这是一个旧的线程,但有人可能会发现我的贡献有用。我可以将map与普通对象一起使用吗?array2只有一个元素:一个具有五个属性的对象。如果它是一个值数组或属性数组,并且如果使用ES6是可以的,那么您可以使用
array1.map(a=>a.checked=true);