繁体   English   中英

获取第一个数组中id与java脚本中其他数组对象中id相同的对象

[英]Get objects having id in 1st array as same as id in objects of other array in java script

我有 2 个对象数组。 他们是

array1 = [{
  id:2,
  name:"person2"
},{
  id:3,
  name:"person3"
},
{
  id:4,
  name:"person4"
},
{
  id:5,
  name:"person5"
},
];
array2 = [
{
    empId:2,
    isdeleted:false
},
{
    empId:4,
    isdeleted:false
}, 
{   
    empId:3,
    isdeleted:true
}];

我需要来自 array1 的对象,其 id 与 array2 的 empId 匹配并且被删除为 false。 提前致谢。

您可以使用filtersome这样的:

 let array1 = [{ id: 2, name: "person2" }, { id: 3, name: "person3" }, { id: 4, name: "person4" }, { id: 5, name: "person5" }, ]; let array2 = [{ empId: 2, isdeleted: false }, { empId: 4, isdeleted: false }, { empId: 3, isdeleted: true } ]; let filteredArray = array1.filter(a => array2.some(b => b.empId === a.id && !b.isdeleted)); console.log(filteredArray);

尝试

let result = [];
array1.forEach(function(element1){
    array2.forEach(function(element2){
        if (element1.id === element2.empId && !element2.isdeleted){
            result.push(element);
        }
    });
});
console.log(result);

你可以尝试这样的事情:

 let array1 = [ { id:2, name:"person2"}, { id:3, name:"person3"}, { id:4, name:"person4"}, { id:5, name:"person5"} ]; let array2 = [ { empId:2, isdeleted:false}, { empId:4, isdeleted:false}, { empId:3, isdeleted:true} ]; let result = array1.reduce((output, item) => { if (array2.find((item2) => !item2.isdeleted && item.id === item2.empId)) output.push(item); return output; }, []); console.log(result);

您可以使用Array.filter()find()array2查找具有该条件的对象:

 var array1 = [{ id: 2, name: "person2" }, { id: 3, name: "person3" }, { id: 4, name: "person4" }, { id: 5, name: "person5" }, ]; var array2 = [{ empId: 2, isdeleted: false }, { empId: 4, isdeleted: false }, { empId: 3, isdeleted: true } ]; var res = array1.filter((obj1)=>{ var exist = array2.find((obj2)=> (obj1.id == obj2.empId && !obj2.isdeleted)); return exist; }); console.log(res);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM