簡體   English   中英

從對象填充模型值。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM