Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript设置对象数组中的所有值_Javascript_Arrays - Fatal编程技术网

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

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

关于类似问题的两部分问题。我有两个不同的阵列

数组1:

 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);