【问题标题】:JavaScript how to set nested json object data into single nested mapJavaScript如何将嵌套的json对象数据设置为单个嵌套映射
【发布时间】:2018-01-10 02:07:56
【问题描述】:

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

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

【问题讨论】:

  • 请不要从问题中删除格式。你可以选择代码,点击Ctrl+k,编辑器会自动为你格式化tt(仅供参考)
  • 如果你问一个“更好的解决方案”,那么你需要在某个地方找到一个解决方案来进行比较。通常你应该至少尝试一些你自己的东西。

标签: javascript json node.js dictionary protractor


【解决方案1】:

如果你想合并所有的地址,你可以这样做

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

【讨论】:

    猜你喜欢
    • 2021-06-20
    • 2019-08-03
    • 2021-07-06
    • 1970-01-01
    • 2020-09-27
    • 2019-10-24
    • 2021-09-30
    • 2021-07-10
    • 1970-01-01
    相关资源
    最近更新 更多