var array1 = [{Age: 24, Name: "Test", StudentID: 101, Checked: false}, {Age:25, Name: "Test", StudentID: 102, Checked: false}];
var array2 = [{ID: 101}];
如果任意元素在array1
有一个属性StudentID
等于ID
财产存在于array2
我想设置Checked
财产在array1
为真。
有小费吗?我想在不编写嵌套 _.each 语句的情况下执行此操作。
这是我的第一次拍摄;然而,我相信_.some
无论如何都会执行交互。
_.each($scope.array1, function(element1) {
if(_.some($scope.array2, { ID: element1.ID })) {
element1.Checked = true;
}
});
您必须使用两个循环,因为您有两个随机长度的数组。但你不必嵌套它们。从 ID 数组创建一个映射,然后检查索引。
var availableIDs = array2.map(function ( item ) { return item.ID; });
array1.forEach(function ( item ) {
if (availableIDs.indexOf(item.StudentID) !== -1) item.Checked = true;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)