我有一个 array 的 objects 是这样的:
let array = [{
"Age": 20,
"Name": "Kevin"
}, {
"Age": 15,
"Name": "Alfred"
}, {
"Age": 30,
"Name": "Joe"
}];
我想得到这样一个对象:
{
"Age": '20, 15, 30',
"Name": 'Kevin, Alfred, Joe'
}
如果我这样做:
let r = array.reduce(function(pV, cV) {
Object.keys(cV).map(function(key){
pV[key] = (pV[key] || []).concat(cV[key]);
});
return pV;
},{});
console.log(r); // { "Age": [20, 15, 30], "Name": ['Kevin', 'Alfred', 'Joe'] }
或者如果我这样做:
let r = array.reduce(function(pV, cV) {
Object.keys(cV).map(function(key){
pV[key] = (pV[key] || '') + ', ' + cV[key];
});
return pV;
},{});
console.log(r); // { "Age": ', 20, 15, 30', "Name": ', Kevin, Alfred, Joe' }
我有点迷路了。关于如何获得我需要的东西的一些想法?
最佳答案
您与第二种方法非常接近,您只需确保初始 ,
不会出现,这对于三元组来说很容易:
let r = array.reduce(function(pV, cV) {
Object.keys(cV).map(function(key){
pV[key] = (pV[key] ? (pV[key] + ", ") : '') + cV[key];
});
return pV;
},{});
关于javascript - 在 reduce 中连接同一对象属性中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51485099/