javascript - 在 reduce 中连接同一对象属性中的值

标签 javascript arrays object

我有一个 arrayobjects 是这样的:

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/

相关文章:

ios - 根据另一个数组的顺序对数组进行高效排序

python - 在 Python 中将 1 x n 数组求 m x 1 数组的所有幂到 m x n 数组

php - 如何生成多个数组中元素的组合?

java - 如何循环调用一个类的所有getter方法?

javascript - 带空格的可动态 json 数据

javascript - 即使表单验证失败,表单也会被提交

JavaScript:在 IE 中列出全局变量

javascript - 单个值的 Observable 与 Promise

javascript - 如何实现像 jQuery 这样的链式方法调用?

javascript - 使用短路评估进行对象解构