Javascript 如何向数组中的重复键添加值

Javascript 如何向数组中的重复键添加值,javascript,node.js,Javascript,Node.js,我将数组推入for循环。如何为相同的键添加值 { "0156": { "test": "hi" } }, { "0156": { "test": "hi2" } }, 我想做这样的事情 { "0156": {

我将数组推入for循环。如何为相同的键添加值

        {
            "0156": {
                "test": "hi"
            }
        },
        {
            "0156": {
                "test": "hi2"
            }
        },
我想做这样的事情

            {
             "0156": {
                "test": "hi"
                "test": "hi2"
            }
这是我尝试的

for(let i in test) {
  let getTest = test[i];
  const usr = getTest.id
  var obj = {};
  obj[usr] = {'test' : getTest.data};
  getData.push(obj);
}
我试着用

if (typeof getData[0][usr] !== "undefined" ) {

 }

但是仍然不起作用。

您可以将值分组到一个数组中

const arr=[{
"0156": {
“测试”:“嗨”,
“测试2”:“abc”
}
},
{
"0156": {
“测试”:“hi2”,
“测试2”:“abc1”
},
"0157": {
“测试”:“y1”
}
},
{
"0156": {
“测试”:“hi3”
},
"0158": {
“测试”:“ti2”
}
},
{
"0156": {
“测试”:“hi4”
},
"0157": {
“测试”:“y”
}
},
{
"0158": {
“测试”:“ti”
}
}
]
const res=arr.reduce(功能(acc,curr){
for(让p表示为curr){
acc[p]=acc[p]| | curr[p]
对于(让p1表示为当前值[p])
acc[p][p1]=acc[p][p1]!=curr[p][p1]?[]concat(acc[p][p1],curr[p][p1]):curr[p][p1]
}
返回acc
}, {})

console.log(res)
您可以在数组中对值进行分组

const arr=[{
"0156": {
“测试”:“嗨”,
“测试2”:“abc”
}
},
{
"0156": {
“测试”:“hi2”,
“测试2”:“abc1”
},
"0157": {
“测试”:“y1”
}
},
{
"0156": {
“测试”:“hi3”
},
"0158": {
“测试”:“ti2”
}
},
{
"0156": {
“测试”:“hi4”
},
"0157": {
“测试”:“y”
}
},
{
"0158": {
“测试”:“ti”
}
}
]
const res=arr.reduce(功能(acc,curr){
for(让p表示为curr){
acc[p]=acc[p]| | curr[p]
对于(让p1表示为当前值[p])
acc[p][p1]=acc[p][p1]!=curr[p][p1]?[]concat(acc[p][p1],curr[p][p1]):curr[p][p1]
}
返回acc
}, {})

console.log(res)
您的预期输出无效。在搜索“array groupBy”时不能再添加相同的键我应该怎么做?抱歉,我是javascriptok的新手,我会阅读更多关于它的内容,谢谢@charlietflYour预期输出无效。在搜索“array groupBy”时不能再添加相同的键我应该怎么做?抱歉,我是javascriptok的新手,我会读更多关于它的内容,谢谢@charlietfl