JavaScript如何将嵌套的json对象数据设置为单个嵌套映射

时间:2017-08-02 17:50:26

标签: javascript json node.js dictionary protractor

我想将嵌套的json数据设置为嵌套映射并迭代它。以下面的示例json为例,我想将firstName,lastName,address对象,地址1对象值设置为单个嵌套map.Also如何迭代它从地址对象城市字段值中获取值。

请提供更好的解决方案。 示例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"
    }
  }]

1 个答案:

答案 0 :(得分:0)

如果要组合所有地址,可以执行以下操作

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"
    }
  ]
}]
*/