Underscore each to update collection

Underscore each to update collection

本文关键字:collection update to each Underscore      更新时间:2023-09-26

尝试使用下划线更新以下集合,但最后一次获胜(READ_ONLY变为false)将覆盖以前的所有更新。你知道怎么修吗?

_.each(availabilities, function(availability, availIndex) {
   _.each(availability.POINTS, function(point, availPointIndex) {
      if(availIndex == 0) {
         point.READ_ONLY = true;
      } else {
         point.READ_ONLY = false;
      }
   });
});

这应该有效:

var availabilities = [
  { 
    POINTS:[{READ_ONLY:true}, {READ_ONLY:true}, {READ_ONLY:true}]
  },
  { 
    POINTS:[{READ_ONLY:true}, {READ_ONLY:true}, {READ_ONLY:true}]
  },
  { 
    POINTS:[{READ_ONLY:true}, {READ_ONLY:true}, {READ_ONLY:true}]
  }
]
_.map(availabilities, function(availability, availIndex) {
   _.mapObject(availability.POINTS, function(point, availPointIndex) {
      if(availIndex == 0) {
         point.READ_ONLY = true;
      } else {
         point.READ_ONLY = false;
      }
   });
});
console.log(availabilities);
<script src="http://underscorejs.org/underscore-min.js"></script>
<pre>
[Object, Object, Object]
0: Object
   POINTS: Array[3]
      0: Object READ_ONLY: true
      1: Object READ_ONLY: true
      1: Object READ_ONLY: true
1: Object
   POINTS: Array[3]
      0: Object READ_ONLY: false
      1: Object READ_ONLY: false
      1: Object READ_ONLY: false
2: Object
   POINTS: Array[3]
      0: Object READ_ONLY: false
      1: Object READ_ONLY: false
      1: Object READ_ONLY: false
</pre>