gpt4 book ai didi

javascript : filter array of objects using another array as filter

转载 作者:行者123 更新时间:2023-11-30 07:21:01 24 4
gpt4 key购买 nike

假设每个员工都是一个拥有

emp1.age=30
emp1.name="Hang"
emp2.age=40
emp2.name="Dang"
emp3.age=50
emp3.name="Bang"

将其存储在数组中。

var orginialArray=[emp1,emp2,emp3];

我想用另一个字符串数组过滤或拼接数组。

我正在某处准备一组名称以与 originalArray 进行比较,然后从 originalArray 中删除不匹配的员工

var removeElements=["Hang","Dang"]

我试过 filter 但它最终在回调中发送了一个字符串,我无法让它工作

function filterItems(query) {
return orginialArray.filter((el) =>
el.toLowerCase().indexOf(query.toLowerCase()) > -1
)
}
console.log(filterItems(removeElements)); //i know this is wrong

目的是过滤原数组,只去掉名字不在元素数组中的员工。

我也试过 splice 但还是不行。

最佳答案

您可以使用 Array.filter()方法(您已经在使用)并仅当当前员工姓名不存在于 removeNames 数组(您可以使用 Array.indexOf() 检查)时才返回 true:

var employees = [
{"name": "abc", "age":"34"},
{"name": "pqr", "age":"34"},
{"name": "xyz", "age":"34"},
{"name": "xxx", "age":"34"},
];

var removeNames = ["xxx"];

// if required, make all removeNames elements lowerCase first
// removeNames = removeNames.map(function(name){
// return name.toLowerCase();
// });//map()


var filteredEmployees = employees.filter(function(emp){
return removeNames.indexOf(emp.name.toLowerCase()) === -1;
});//filter

console.log( filteredEmployees );

关于javascript : filter array of objects using another array as filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44073470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com