我有以下数组 struct :
const values = [{
"region": "US", "content": "content 1", "value": "value1"
}, {
"region": "US", "content": "content 2", "value": "value2"
}, {
"region": "US", "content": "content 3", "value": "value3"
}, {
"region": "LA", "content": "content 4", "value": "value4"
}, {
"region": "LA", "content": "content 5", "value": "value5"
}, {
"region": "LA", "content": "content 6", "value": "value6"
}, {
"region": "LA", "content": "content 7", "value": "value7"
}]
我正在try 将其转换为以下内容-请注意,在输出数组内的结果对象中没有region
键:
const output = [{
"US": [
{"content": "content 1", "value": "value1"},
{"content": "content 2", "value": "value2"},
{"content": "content 3", "value": "value3"}
],
"LA": [
{"content": "content 4", "value": "value4"},
{"content": "content 5", "value": "value5"},
{"content": "content 6", "value": "value6"},
{"content": "content 7", "value": "value7"}
]
}]
到目前为止,这是我try 过的:
let outputValues = [];
values.forEach(currentElement => {
outputValues[currentElement.region].push(currentElement);
})
console.log(outputValues);
上面的解决方案给出了以下错误:
未捕获的TypeError:无法读取未定义的属性(正在读取‘Push’)
不知道为什么.
我也try 过:
# 1st option
outputValues[currentElement.region] = currentElement;
# 2nd option
outputValues[currentElement.region] = [];
outputValues[currentElement.region].push(currentElement);
但这只添加了主values
数组中的最后一个元素.我错过了什么吗?