再会。告诉我如何遍历从对象中获取过滤器值的数组?
const hotels = [
{
name: "Marina Inn",
country: "США"
address: "Фалираки",
stars: 4,
},
{
name: "Mondrian Suites",
country: "Греция",
address: "Родос",
stars: 5,
},
{
name: "Mondrian Suites",
country: "США",
address: "Родос",
stars: 5,
}
]
我想通过来自对象的过滤器过滤对象:
const objFilter = {
country: "США",
stars: 5,
}
你应该得到一个数组
[
{
name: "Mondrian Suites",
country: "США",
address: "Родос",
stars: 5,
}
]
您可以使用Object#entries
来获取过滤器对象的对。
然后,使用Array#filter
,遍历数组并使用 返回匹配的元素Array#every
:
const filterArrByObj = (arr = [], obj = {}) => {
const filterEntries = Object.entries(obj);
return arr.filter(e =>
filterEntries.every(([key, value]) => e[key] === value)
);
}
const
hotels = [{ name: "Marina Inn", country: "США", address: "Фалираки", stars: 4 }, { name: "Mondrian Suites", country: "Греция", address: "Родос", stars: 5 }, { name: "Mondrian Suites", country: "США", address: "Родос", stars: 5 }],
objFilter = { country: "США", stars: 5 };
console.log( filterArrByObj(hotels, objFilter) );
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句