對不起,如果標題沒有意義..讓我解釋一下
假設我有以下二維陣列..第一個陣列代表冰淇淋,第二個代表奶昔
menu = [ ['vanilla', 'chocolate', 'almond'],
['vanilla', 'pineapple', 'strawberry'] ]
現在我創建一個將這個陣列作為輸入的類
class cafe{
constructor(menu){
this.iceCreams = menu[0]
this.milkshakes = menu[1]
}
}
現在我想為每種口味的奶昔定義一個名為“價格”的屬性。
this.milkshakes[n].price = < a function that computes price based on value of n >
這樣我就可以像這樣訪問它們:
cafe.milkshakes[0].price
那么如何在定義屬性時合并陣列的索引'n'
我沒有嘗試過任何事情,因為我什至不知道如何處理這個??
uj5u.com熱心網友回復:
您可以在建構式中執行此操作。
您可以獲取名稱,并map在其上呼叫函式并做任何您想做的事情。請檢查以下示例。那里有calculatePrice一個函式,它獲取索引并根據索引回傳價格。
class Cafe {
constructor (menu) {
this.iceCreams = menu[0].map((flavor, index) => {
return {
flavor,
price: calculatePrice(index)
}
});
this.milkshakes = menu[1].map((flavor, index) => {
return {
flavor,
price: calculatePrice(index)
}
});
}
這是一個最小的答案。
更新:有關詳細和改進的答案:https ://codesandbox.io/s/cafe-example-wxp2c4
uj5u.com熱心網友回復:
因此,在milkshakes陣列中,您需要將每個專案作為object資料結構,而不是字串。
menu = [ ['vanilla', 'chocolate', 'almond'],
[{ flavor: 'vanilla' }, { flavor: 'pineapple' }, { flavor: 'strawberry' }] ]
然后你可以回圈并設定價格,就像這樣。
menu.milkshakes.forEach((item, index) => item.price = index))
uj5u.com熱心網友回復:
你可以使用物件:
menu = [
[
{
name: "vanilla",
price: 200,
},
{
name: "chocolate",
price: 200,
},
{
name: "almond",
price: 200,
},
],
[
{
name: "vanilla",
price: 200,
},
{
name: "pineapple",
price: 200,
},
{
name: "strawberry",
price: 200,
},
],
];
接著:
class cafe{
constructor(menu){
this.iceCreams = menu[0]
this.milkshakes = menu[1]
}
}
現在冰淇淋和奶昔有房產價格和名稱
例子:
iceCreams[n].price
iceCreams[n].name
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/532186.html
上一篇:Python中的“繼續”功能
