![](/img/trans.png)
[英]Compare two array of objects and remove objects from first array if a property value is matched
[英]How to compare two array objects and remove matched objects from one array object
我的代碼方案是:
var Employees= [{name:"Ram",htno:1245},{name:"mohan",htno:1246},
{name:"madhu",htno:1247},{name:"ranga",htno:1248}]
var seletedEmployees= [{name:"mohan"},{name:"ranga"}];
var employeesdataAfterremoveSelected = [?];
您可以將選定的雇員姓名存儲在一個數組中,然后過濾“雇員”數組並檢查該雇員的姓名是否在此數組中:
var employees= [{name:"Ram",htno:1245},{name:"mohan",htno:1246},{name:"madhu",htno:1247},{name:"ranga",htno:1248}] var selectedEmployees= ["mohan","ranga"]; var result = employees.filter(emp => selectedEmployees.includes(emp.name)); console.log(result);
要以編程方式獲取字符串數組而不是對象數組,可以使用map
:
var seletedEmployees= [{name:"mohan"},{name:"ranga"}].map(emp => emp.name);
您可以嘗試以下方法:
var Employees = [{name:"Ram",htno:1245},{name:"mohan",htno:1246},
{name:"madhu",htno:1247},{name:"ranga",htno:1248}]
var seletedEmployees = [{name:"mohan"},{name:"ranga"}];
var employeesdataAfterremoveSelected = Employees.filter(name => {
return (name.name !== seletedEmployees[0].name && name.name !== seletedEmployees[1].name)
})
console.log(employeesdataAfterremoveSelected)
從上面給出的代碼中,我認為這可能有效
$.each(student, function(key, value){
if(matchedvalues.indexOf(value.name) < 0)
{
employeesdataAfterremoveSelected.push(value.name);
}
})
這是一個班輪,分解來解釋:
// Start by filtering the first array on a condition.
employeesdataAfterremoveSelected = Employees.filter(
// Map the array of selected employees to only return the name
e => seletedEmployees.map(_e => _e.name)
// use the includes function to check if the name is in the array
.includes(e.name)
);
一行:
employeesdataAfterremoveSelected = Employees.filter(e => seletedEmployees.map(_e => _e.name).includes(e.name));
您可以使用過濾器方法,如下所示(未經測試)
var Employees = [{name:"Ram",htno:1245}, {name:"mohan",htno:1246}]
var SelectedEmployess = [{name:"Ram",htno:1245}]
// filter the items from the invalid list, out of the complete list
var employeesdataAfterremoveSelected = Employees.filter((item.name) => {
return !SelectedEmployess.has(item.name);
})
// get a Set of the distinct, valid items
var validItems = new Set(employeesdataAfterremoveSelected);
var Employees = [{{name:“ Ram”,htno:1245},{name:“ mohan”,htno:1246},{name:“ madhu”,htno:1247},{name:“ ranga”,htno:1248 }]
var seletedEmployees = [{{name:“ mohan”},{name:“ ranga”}]];
var EmployeesdataAfterremoveSelected = Employees.filter(function(val,index){console.log(val.name)return!(seletedEmployees.map(function(e){return e.name;})。indexOf(val.name));; });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.