gpt4 book ai didi

javascript - 通过仅包含数组属性子集的对象过滤 javascript 数组

转载 作者:太空狗 更新时间:2023-10-29 18:14:35 24 4
gpt4 key购买 nike

我有一组具有许多属性的对象。我希望能够根据仅包含数组属性子集的过滤器对象找到匹配项。例如,我有一个客户

let Customer = {
Name: "John Doe",
Age: 80,
Hair: "Red",
Gender: "Male",

};

我有我的搜索对象:

let searchObject ={
Hair: "Red",
Gender: "Male"
}

我希望能够在我的数组中找到所有与 searchObject 匹配的客户,而无需执行以下操作:

this.array.filter(z=>z.Hair == searchObject.Hair && z.Gender == searchObject.Gender);

我希望当 searchObject 添加更多属性时,它也会自动过滤这些属性

最佳答案

您可以在 searchObjectObject.keys() 上使用 every() 并检查 中的所有键的值>searchObject 匹配数组中对象的相应值。

在下面的代码片段中,我有两个具有不同 Gender 的对象

let array = [{
Name: "John Doe",
Age: 80,
Hair: "Red",
Gender: "Male",
},{
Name: "Marry",
Age: 80,
Hair: "Red",
Gender: "Female",
}]

let searchObject ={
Hair: "Red",
Gender: "Male"
}

const res = array.filter(x => Object.keys(searchObject).every(k => x[k] === searchObject[k]));

console.log(res)

关于javascript - 通过仅包含数组属性子集的对象过滤 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56131615/

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