【发布时间】:2021-10-21 01:20:42
【问题描述】:
我有一个 json,我需要以 2d 数组的形式组织,并且已知在 json 迭代之后可以找到数字列,并且它们将被编号为 #1 #2 以用于对应的多组出现项目如下图/表格所示
预期的输出是二维数组
[
["firstName", "middleName", "lastName", "addresses: #1 type", "addresses: #1 poBox", "addresses: #1 streetAddress", "addresses: #1 city", "addresses: #1 region", "addresses: #1 postalCode", "addresses: #1 country", "addresses: #2 type", "addresses: #2 poBox", "addresses: #2 streetAddress", "addresses: #2 city", "addresses: #2 region", "addresses: #2 postalCode", "addresses: #3 poBox", "addresses: #3 region", "addresses: #3 postalCode", "addresses: #2 country", "photos: #1 url", "photos: #1 default", "photos: #2 url", "photos: #2 default"],
["John", "Joseph", "Briggs", "home", 111, "", "City1", "", "1ER001", "USA", "work", 222, "", "City2", "Region2", "1ER002", "", "", "", "", "photo.org/person1", "TRUE", "photo.org/person1", "TRUE"],
["Bill", "", "Thatcher", "home", "", "", "City3", "Region3", "1ER003", "USA", "work", 444, "", "", "Region4", "1ER004", 555, "Region5", "1ER005", "", "", "", "", ""]
]
The expected output is also shown here for better clarity
请注意,红色标题列不包含数据,也不需要在二维数组输出中。有 1000 个人群(行)具有相似的数据,例如有些没有邮政编码,有些缺少中间名,有些缺少照片
<!DOCTYPE html>
<html>
<body>
<script>
var crowds = [{
"name": [{
"firstName": "John",
"middleName": "Joseph",
"lastName": "Briggs"
}],
"addresses": [{
"type": "home",
"poBox": "111",
"city": "City1",
"postalCode": "1ER001",
"country": "USA"
},
{
"type": "work",
"poBox": "222",
"city": "City2",
"region": "Region2",
"postalCode": "1ER002"
}
],
"photos": [{
"url": "photo.org/person1",
"default": true
},
{
"url": "imagur.org/person1",
"default": true
}
]
},
{
"name": [{
"firstName": "Bill",
"lastName": "Thatcher"
}],
"addresses": [{
"type": "home",
"city": "City3",
"region": "Region3",
"postalCode": "1ER003",
"country": "USA"
},
{
"type": "work",
"poBox": "444",
"region": "Region4",
"postalCode": "1ER004"
}
{
"poBox": "555",
"region": "Region5",
"postalCode": "1ER005"
}
]
}
]
var rows = [];
var headerRow = [];
crowds.forEach(function(crowd) {
var cols = [];
for (key in crowd) {
headerRow.push(key + ":#")
cols.push(crowd[key].firstName)
cols.push(crowd[key].middleName)
cols.push(crowd[key].lastName)
}
rows.push(cols)
})
console.log(JSON.stringify(headerRow.concat(rows)))
</script>
</body>
</html>
【问题讨论】:
标签: javascript arrays json multidimensional-array