![](/img/trans.png)
[英]Swapping an Objects value, with a value from another object. *Javascript*
[英]Fill model value from an object.
我正在嘗試創建一個函數,該函數接收一個數組和一個對象,並像這樣返回兩者的組合。
fruits: [
{
name: apple,
seeds: ''
},
{
name: grape,
seeds: ''
},
{ name: banana,
seeds: ''
},
]
const seedData = {
apple: 'yes',
banana: 'yes',
grape: 'no',
}
setSeedData = (fruits, seedData) => {
return completedFruits
}
想要的結果是這樣的:
fruits: [
{
name: apple,
seeds: 'yes'
},
{
name: grape,
seeds: 'yes'
},
{
name: banana,
seeds: 'no'
},
]
我的問題是:如何創建函數setSeedData? 返回的De數組應替換當前的fruits數組。
您基本上可以映射到數組並返回更新的數據
const fruits= [ { name: 'apple', seeds: '' }, { name: 'grape', seeds: '' }, { name: 'banana', seeds: '' }, ] const seedData = { apple: 'yes', banana: 'yes', grape: 'no', } setSeedData = (fruits, seedData) => { return fruits.map(fruit=> ({...fruit, seeds: seedData[fruit.name]})); } console.log(setSeedData(fruits, seedData));
您可以使用.forEach()
遍歷數組並添加屬性:
const fruits = [ {name: 'apple', seeds: ''}, {name: 'grape', seeds: ''}, {name: 'banana', seeds: ''} ]; const seedData = { apple: 'yes', banana: 'yes', grape: 'no' }; const setSeedData = (arr, obj) => (arr.forEach((o) => (o.seeds = obj[o.name])), arr); console.log(setSeedData(fruits, seedData));
.as-console-wrapper { max-height: 100% !important; top: 0; }
您可以映射fruits
,並通過查找具有fruits
name
鍵值的seedData
對象來更新seeds
鍵。
const fruits = [ { name: 'apple', seeds: '' }, { name: 'grape', seeds: '' }, { name: 'banana', seeds: '' }, ]; const seedData = { apple: 'yes', banana: 'yes', grape: 'no', } setSeedData = (fruits, seedData) => { return fruits.map(fruit => { return {...fruit, seeds: seedData[fruit.name]} }) } console.log(setSeedData(fruits, seedData))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.