首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我有两个数组,如何找到匹配元素并执行一些操作?(送交)

我有两个数组,如何找到匹配元素并执行一些操作?(送交)
EN

Stack Overflow用户
提问于 2015-10-09 09:49:03
回答 4查看 454关注 0票数 3
代码语言:javascript
运行
复制
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无论如何都会进行一次干预。

代码语言:javascript
运行
复制
_.each($scope.array1, function(element1) {
          if(_.some($scope.array2, { ID: element1.ID })) {
            element1.Checked = true;
          }
        });
EN

Stack Overflow用户

发布于 2015-10-09 10:11:10

试试这个片段:

代码语言:javascript
运行
复制
_.each(array1, function (el) {
    el.Checked = !!(JSON.stringify(array2).indexOf(el.StudentID) + 1) || el.Checked;
});

或者,您可以不使用lo-dash.js(使用纯JavaScript)。

代码语言: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)

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33035090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档