javascript set all values in array of object

后端 未结 4 2018
时光说笑
时光说笑 2021-01-03 23:50

Two part question about similar problems. I\'ve got 2 different arrays,

array 1:

 array1 = [{
     name : \"users\",
     checked :          


        
相关标签:
4条回答
  • 2021-01-04 00:25

    You can use es6 fat arrow and make one liner but still it involves iteration .

    array1.map(a=>a.checked=true);
    

    array1 = [{
         name : "users",
         checked : true
       }, {
         name : "active users",
         checked : false
       }, {
         name : "completions",
         checked : false
       }]
       array1.map(a=>a.checked=true);
       console.log(array1);

    0 讨论(0)
  • 2021-01-04 00:26

    There is no way to set the value of each object in an array without iterating (looping) through the array as you mentioned in your question.

    0 讨论(0)
  • 2021-01-04 00:40

    You can't do this without looping over the elements, however there are functional abstractions you can use instead of for:

    For array 1, you can use map

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

    Or using _.map from lodash:

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

    For array 2 you can use _.mapValues from lodash.

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

    You can see that lodash implements _.map using while at https://github.com/lodash/lodash/blob/a1b15df6489f47498edda244552c9804e046a45d/lodash.js#L3125

    0 讨论(0)
  • 2021-01-04 00:49

    Even though this is not a lot of code i'm just curious if there is a way to do this without iterating over every object in the array. (not sure if this is even possible or whether this makes any difference whatsoever, so if please correct me if i am wrong about any of this).

    Is it possible to simply set all the values to true or false at once (again i can use a for loop, but would prefer not to)

    No ! You can't visit all towns without visiting each of them. There are shortcuts with jQuery like $.each and lodash like _.map but it's just a function that's doing what you would do with the for loop.

    0 讨论(0)
提交回复
热议问题