我有两个数组,如何找到匹配的元素并执行某些操作? (洛达什)

2023-12-29

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(使用前将#替换为@)

我有两个数组,如何找到匹配的元素并执行某些操作? (洛达什) 的相关文章

随机推荐