【发布时间】:2022-01-02 13:40:39
【问题描述】:
我想从我将从查询结果中获得的平面数组创建一个数组对象,并希望创建 json 结构作为响应以将其作为 api 响应传递。 例如- 平面阵列-
[{
user_id: '2311123',
user_country: 'United States',
user_city: 'ny',
ssn: 229
},
{
user_id: '451313',
user_country: 'United States',
user_city: 'abc',
ssn: 147
},
{
user_id: '65345',
user_country: 'United States',
user_city: 'abc',
ssn: 444
},
{
user_id: '763343',
user_country: 'Australia',
user_city: 'auus',
ssn: 678
}]
我想创建一个类似预期输出的结构
{
"United States": [
{
"ny": [
{
"user_id": "2311123",
"ssn": "7"
}
]
},
{
"abc": [
{
"user_id": "451313",
"ssn": "147"
},
{
"user_id": "65345",
"ssn": "444"
}
]
}
],
"Australia": [
{
"auus": [
{
"user_id": "763343",
"ssn": "678"
}
]
}
]
}
其中映射了 user_country 对象数组和 user_city 对象数组。 我已经尝试过这段代码,但无法达到预期的输出。:
const map = {};
results.forEach(arr => {
console.log("arr",arr)
if(map[arr.user_country]){
if(!map[arr.user_country].includes(arr.user_city))
map[arr.user_country].push(arr.user_city);
}else{
map[arr.user_country] = [arr.user_city]
}
});
console.log(map);
【问题讨论】:
-
有什么理由需要城市作为数组中的对象而不是对象的属性?以
United States: { ny: [], abc: [] }为例。
标签: javascript arrays json object mapping