簡體   English   中英

JavaScript如何將嵌套的json對象數據設置為單個嵌套映射

[英]JavaScript how to set nested json object data into single nested map

我想將嵌套的json數據設置到嵌套映射中並對其進行迭代。以下面的示例json為例,我想將firstName,lastName,address對象,address 1對象的值設置為單個嵌套map.Allow如何對其進行迭代以獲取值來自地址對象城市字段的值。

請提供更好的解決方案。 樣本json:

 [{
    "firstName": "Jihad",
    "lastName": "Saladin",
    "address": {
      "street": "12 Beaver Court",
      "city": "Snowmass",
      "state": "CO",
      "zip": "81615"
    },
    "address1": {
      "street": "16 Vail Rd",
      "city": "Vail",
      "state": "CO",
      "zip": "81657"
    }
  }]

如果要合並所有地址,可以執行以下操作

const people = [{
  "firstName": "Jihad",
  "lastName": "Saladin",
  "address": {
    "street": "12 Beaver Court",
    "city": "Snowmass",
    "state": "CO",
    "zip": "81615"
  },
  "address1": {
    "street": "16 Vail Rd",
    "city": "Vail",
    "state": "CO",
    "zip": "81657"
  }
}]
const newPeople = people.map(person => {
  const addresses = [person.address]
  for (let i = 1; person['address' + i]; i++) {
    addresses.push(person['address' + i])
  }
  return {
    firstName: person.firstName,
    lastName: person.lastName,
    addresses
  }
})
console.log(JSON.stringify(newPeople))
/*
[{
  "firstName": "Jihad",
  "lastName": "Saladin",
  "addresses": [
    {
      "street": "12 Beaver Court",
      "city": "Snowmass",
      "state": "CO",
      "zip": "81615"
    },
    {
      "street": "16 Vail Rd",
      "city": "Vail",
      "state": "CO",
      "zip": "81657"
    }
  ]
}]
*/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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