如何在JavaScript中将多个数组合并为一个单一数组

3

I have array like this

   var arr = [
                [ {"c": 1},{"d": 2} ],
                [ {"c": 2},{"d": 3} ]
             ]

我希望能够通过JavaScript将其更改(仅限于JavaScript)。
var newArr  = [{"c": 1},{"d": 2},{"c": 2},{"d": 3}]

我尝试使用map方法,但没有得到预期的输出。

请展示一下你尝试过的内容(使用 map 的尝试)。 - Sebastian
你想将数组的数组扁平化为单一的数组。 - Denis Tsoi
此内容已被复制,原链接:https://dev59.com/cmgv5IYBdhLWcg3wD8yY [重复] - Denis Tsoi
使用递归函数,测试数组元素是否为isArray。 - Álvaro Touzón
3个回答

10

您可以使用reduce()和展开语法。

 var arr = [
  [ {"c": 1},{"d": 2} ],
  [ {"c": 2},{"d": 3} ]
]

var result = arr.reduce((r, e) => (r.push(...e), r), [])
console.log(result)


我希望我可以多次点赞,这是一个非常好的回答! - Jackthomson

2
你可以使用 Array#reduceArray#concat

var arr = [[{ c: 1 }, { d: 2 }], [{ c: 2 }, { d: 3 }]],
    result = arr.reduce((r, a) => r.concat(a), []);

console.log(result)

ES5

var arr = [[{ c: 1 }, { d: 2 }], [{ c: 2 }, { d: 3 }]],
    result = arr.reduce(function (r, a) { return r.concat(a); }, []);

console.log(result)


1
在纯JavaScript中,您可以使用Array.portotype.forEach来实现此功能。

var arr = [
                [ {"c": 1},{"d": 2} ],
                [ {"c": 2},{"d": 3} ]
             ];
             
var newArray = [];

arr.forEach(function(e){
 e.forEach(function(e1){
  newArray.push(e1);
 });
})

console.log(newArray);

使用这个...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接