我有一個物件陣列,在這些物件中是另一個包含特定屬性的物件,我想從中獲取值并將其存盤在單獨的陣列中。
如何name
從以下資料結構中訪問和存盤屬性中的值:
pokemon:Object
abilities:Array[2]
0:Object
ability:Object
name:"blaze"
1:Object
ability:Object
name:"solar-power"
我將如何回傳并將name
屬性中的值顯示為一個不錯的字串,例如
blaze, solar-power
?
我嘗試做這樣的事情,但我仍然得到一個陣列,我不想做第三個回圈,因為那不是高性能的。
let pokemonAbilities = [];
let test = pokemon.abilities.map((poke) =>
Object.fromEntries(
Object.entries(poke).map(([a, b]) => [a, Object.values(b)[0]])
)
);
test.map((t) => pokemonAbilities.push(t.ability));
樣本資料:
"pokemon": {
"abilities": [
{
"ability": {
"name": "friend-guard",
"url": "https://pokeapi.co/api/v2/ability/132/"
},
"ability": {
"name": "Solar-flare",
"url": "https://pokeapi.co/api/v2/ability/132/"
}
}
]
}
然后我對從上面回傳的陣列進行連接以獲取格式化的字串。
似乎map()
可以優化多個回圈,但我不確定如何使其更有效。
謝謝你。
uj5u.com熱心網友回復:
回圈內不需要回圈。試試這個:
const pokemon = {
abilities: [{
ability: {
name: 'friend-guard',
url: 'https://pokeapi.co/api/v2/ability/132/'
},
}, {
ability: {
name: 'Solar-flare',
url: 'https://pokeapi.co/api/v2/ability/132/'
}
}]
};
const pokemonAbilities = pokemon.abilities.map(item => item.ability.name).join(', ');
console.log(pokemonAbilities);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/469106.html
標籤:javascript 数组