我試圖根據條件僅將物件的一部分作為陣列回傳,但我有點難過。
我有一個物件陣列,我想為每個鍵回傳一個名稱陣列:它們適合的值。
我確實只得到了唯一的配對,但我也回傳了食物鍵:值,并且所有這些仍然在一個物件而不是一個新陣列中。一些見解將不勝感激。較新的編碼。
const organizeNames = function (foods) {
let foodNames = foods.filter((names) => {
if (names.food === 'oranges') {
return names.name;
}
});
console.log(foodNames);
};
console.log(
organizeNames([
{ name: 'Samuel', food: 'oranges' },
{ name: 'Victoria', food: 'pizza' },
{ name: 'Karim', food: 'pizza' },
{ name: 'Donald', food: 'pizza' },
])
);
uj5u.com熱心網友回復:
你在這里真的很近。您需要合并的是.map()將物件串列映射到名稱串列。return names.food === 'oranges'您的過濾器部分起作用,部分是偶然的,所以我已將其修復為更正確(通過做.map(names => names.name)
const organizeNames = function (foods) {
let foodNames = foods.filter((names) => {
// only keep items whose .food property === 'oranges'
return names.food === 'oranges'; // returns true or false
}).map(names => {
// map the filtered list of objects into a list of names by
// returning just the object's .name property
return names.name;
});
return foodNames;
};
console.log(
organizeNames([
{ name: 'Samuel', food: 'oranges' },
{ name: 'Victoria', food: 'pizza' },
{ name: 'Karim', food: 'pizza' },
{ name: 'Donald', food: 'pizza' },
])
);
uj5u.com熱心網友回復:
filter()回呼函式應該只回傳trueor 。false然后,您可以使用map()從每個過濾專案中獲取特定屬性。
const organizeNames = function(foods) {
let foodNames = foods.filter((names) => names.food == 'oranges').map(names => names.name);
return foodNames;
}
console.log(
organizeNames([{
name: 'Samuel',
food: 'oranges'
},
{
name: 'Victoria',
food: 'pizza'
},
{
name: 'Karim',
food: 'pizza'
},
{
name: 'Donald',
food: 'pizza'
},
])
);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/475831.html
標籤:javascript 数组 条件语句 javascript 对象
