私はフォームの配列を持っています
var cars = [
{name: "BMW X5", topsales: ["USA", "China", "Russia"], maxspeed: 250, users: ["teenage", "ladies", "mens"]}
{name: "Volkswagen Touareg", topsales: ["USA", "Germany"], maxspeed: 240, users: ["teenage", "mens", "old mens"]}
etc....
]
私はフィルタリングしようとしています、次のようにしましょう:
var query = {
topsales: ["USA", "China"],
users: "teenage"
}
function nestedFilter(targetArray, filters) {
var filterKeys = Object.keys(filters);
return targetArray.filter(function (eachObj) {
return filterKeys.every(function (eachKey) {
if (!filters[eachKey].length) {
return true;
}
return filters[eachKey].includes(eachObj[eachKey]);
});
});
};
goodresult = nestedFilter(cars, query);
しかし、機能が思うように動かない。オブジェクトのプロパティに値が 1 つある場合はフィルター処理されますが、複数の値があり、検索を満たすために少なくとも 1 つの値が必要な場合は、フィルター処理されません。喜ばせることができる人を助ける