[英]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。 提前致谢。
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.