var array1 = [{Age: 24, Name: "Test", StudentID: 101, Checked: false}, {Age:25, Name: "Test", StudentID: 102, Checked: false}];
var array2 = [{ID: 101}];如果array1中的任何元素的属性StudentID等于array2中的ID属性,那么我希望将array1中的Checked属性设置为true。
有小费吗?我想在不编写嵌套_.each语句的情况下这样做。
这是我的第一次拍摄,但是,我相信_.some无论如何都会进行一次干预。
_.each($scope.array1, function(element1) {
          if(_.some($scope.array2, { ID: element1.ID })) {
            element1.Checked = true;
          }
        });发布于 2015-10-09 10:11:10
试试这个片段:
_.each(array1, function (el) {
    el.Checked = !!(JSON.stringify(array2).indexOf(el.StudentID) + 1) || el.Checked;
});或者,您可以不使用lo-dash.js(使用纯JavaScript)。
var array1 = [{Age: 24, Name: "Test", StudentID: 101, Checked: false}, {Age:25, Name: "Test", StudentID: 102, Checked: false}];
var array2 = [{ID: 101}];
var students = array1.filter(function(data){
  var isTrue = !!(JSON.stringify(array2).indexOf(data.StudentID)+1);
  data.Checked = isTrue || data.Checked;
  return isTrue;
})
console.log(students)
https://stackoverflow.com/questions/33035090
复制相似问题