所以我有一个值数组,如下所示
const foodsList = [
{
foodOrigin: "Padang",
foodName: "Nasi Padang",
originCode: "PDN"
},
{
foodOrigin: "Padang",
foodName: "Gulai",
originCode: "PDN"
},
{
foodOrigin: "Padang",
foodName: "Rendang",
originCode: "PDN"
},
{
foodOrigin: "Palembang",
foodName: "Pempek",
originCode: "PLG"
},
{
foodOrigin: "Palembang",
foodName: "Tekwan",
originCode: "PLG"
},
{
foodOrigin: "Yogyakarta",
foodName: "Gudeg",
originCode: "YKT"
}
];
我想对数组进行过滤,因此结果将如下所示
const filteredFoodsList = [
{
foodOrigin: "Padang",
originCode: "PDN"
},
{
foodOrigin: "Palembang",
originCode: "PLG"
},
{
foodOrigin: "Yogyakarta",
originCode: "YKT"
}
];
为了达到这个结果,我try 了如下所示,但是有没有更干净、更好的方法呢?(尤其是因为我的实际数组中包含500多个数据)
const filteredFoodsList = [];
for (let i = 0; i < foodsList.length; i++) {
if (i === 0) {
filteredFoodsList.push({
originCode: foodsList[i].originCode,
foodOrigin: foodsList[i].foodOrigin
});
}
let isExist = false;
for (let j = 0; j < filteredFoodsList.length; j++) {
if (foodsList[i].originCode === filteredFoodsList[j].originCode) {
isExist = true;
}
}
if (!isExist) {
filteredFoodsList.push({
originCode: foodsList[i].originCode,
foodOrigin: foodsList[i].foodOrigin
});
}
}