给定以下对象数组:
var data = [
{fruit: "apples", stock: false, season: true},
{fruit: "peaches", stock: true, season: false},
{fruit: "oranges", stock: false, season: false},
{fruit: "pears", stock: false, season: true},
]
这两个数组:
var fruits = ["apples", "peaches"]
var inv = ["stock"]
如何从数据
中过滤对象,以便保留对象:
- 如果
fruits
数组中有一个fruit
;和 - 它们有一个来自
inv
数组的属性,该属性设置为 true
因此,在上面的示例中,只有桃子能够生存:
var result = [
{fruit: "peaches", stock: true, season: false}
]
最佳答案
我认为你可以使用 some()
的过滤器和 includes()
:
var data = [
{fruit: "apples", stock: false, season: true},
{fruit: "peaches", stock: true, season: false},
{fruit: "oranges", stock: false, season: false},
{fruit: "pears", stock: false, season: true},
]
var fruits = ["apples", "peaches"]
var inv = ["stock"]
let filtered = data.filter(item =>
fruits.includes(item.fruit) && inv.some(i => item[i]))
console.log(filtered)
关于javascript - 使用值数组过滤对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410923/