只是想知道是否有人可以為我指出 .map 功能的正確方向。不幸的是,我正在努力解決這個問題。
如果我有一個物件,讓我們說以下內容:
const myPetsAndFood = {
pets:[
{
species: "dog",
breed: "Labrador",
age: 12
},
{
species: "cat",
breed: "unknown",
age: 7,
},
{
species: "fish",
breed: "goldfish",
age: 1,
}
],
food: [
{
dogfood: 15.00,
},
{
catfood: 11.00,
},
{
fishfood: 4.00,
}
],
};
如果可能的話,誰能解釋我如何利用 .map 來獲取年齡和價格的資料值?一個簡短的解釋或示例就足夠了,我將不勝感激任何時間/輸入。很可能,我會坐在這里閱讀并試圖在此期間弄清楚。
如果你走到這一步 - 謝謝你的時間。
uj5u.com熱心網友回復:
所以 .map 只能與陣列一起使用。這樣你就不能做類似的事情:
myPetsAndFood.map()
假設你想做 console.log 年齡。您必須先獲取陣列。所以:
myPetsAndFood.pets.map((pet) => {
console.log(pet.age)
})
它會列印 12,然后是 7,然后是 1。如果你想將它存盤在一個陣列中,你可以創建一個陣列并使用 .push("//infos want to be push//")
uj5u.com熱心網友回復:
map是陣列的一種方法,它不存在于物件上。您可以在物件 ( ) 中的陣列上使用它,myPetsAndFood.pets.map( /* ... */ )但您必須使用for回圈或其他技術來決議物件中的每個專案。
如何將map函式用于您的陣列之一的示例:
const agesArray = myPetsAndFood.pets.map((item) => {
return item.age;
});
uj5u.com熱心網友回復:
Object.keys(myPetsAndFood).map(function(key, index) {
console.log(myPetsAndFood[key][0].dogfood);
console.log(myPetsAndFood[key][0].age);
});
您將不得不想辦法用某種會遞增的計數器替換 0。
uj5u.com熱心網友回復:
這是我能想到的最簡單的方法,這樣您就可以獲得年齡和價格。不得不做一些瘋狂的假設,即寵物陣列和食物陣列都保證具有相同的順序。除非map結構看起來像 Barmar 評論的那樣,否則不僅無法解決它。請注意,我正在使用模板文字來根據物種提取價格
const myPetsAndFood = {
pets:[
{
species: "dog",
breed: "Labrador",
age: 12
},
{
species: "cat",
breed: "unknown",
age: 7,
},
{
species: "fish",
breed: "goldfish",
age: 1,
}
],
food: [
{
dogfood: 15.00,
},
{
catfood: 11.00,
},
{
fishfood: 4.00,
}
],
};
const mapped = myPetsAndFood.pets.map((el,idx) => {
return {
[el.species]:{age: el.age,
food: myPetsAndFood.food[idx][`${el.species}food`]
}
}
}
)
console.log(mapped)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/426124.html
