如何将具有相同 属性 名称的对象数组转换为值由给定数组中的值串联而成的对象? JS

How to transform an array of objects with the same property name into the object in which value is concatenated from values in a given array? JS

我有一个对象数组,如下所示:

const arr = [
  {integer: "3"},
  {integer: "500"}
]

因此我想要得到如下所示的对象:mergedObj = {digits: "3500"}

我尝试使用 reduce,但似乎我做错了什么。 这是我的代码:

var mergedObj = arr.reduce((acc, obj) => {

   acc["digits"] = [acc[obj.integer]].concat(obj.integer).join("");

    return acc;
}, {});

这是我得到的结果:

"Object is", [object Object] {
  digits: "500"
}

问题是我缺少数字的第一部分。请帮我!提前致谢!

你差不多明白了。 [acc[obj.integer]] 部分应该是 [acc.digits]。无论如何,你可以做得更简单:

const arr = [
  {integer: "3"},
  {integer: "500"}
]

var mergedObj = arr.reduce((acc, obj) => {

   acc.digits += obj.integer;

    return acc;
}, { digits: '' });

console.log(mergedObj);

试试下面这个:

const arr = [
   {integer: "3"},
   {integer: "500"}
]

let output = {'digits':''};
arr.map(function (item) {
    output['digits'] += item['integer']
});
console.log(output);

Array.map()创建一个integer的数组,然后加入。分配给新对象的 digits 属性:

const arr = [
  {integer: "3"},
  {integer: "500"}
]

const result = {
  digits: arr.map(o => o.integer).join('')
};

console.log(result);