如何在javascript中动态合并数组?

如何在javascript中动态合并数组?,javascript,arrays,Javascript,Arrays,我想合并如下数组 var series=[{Name:“A”,Type:“SC”},{Name:“B”, 类型:“SC”},{Name:“C”,类型:“SC”},{Name:“D”, 类型:“SC”},{ColumnName:“Target”,类型:“Line”}{ ColumnName:“bar”,类型:“Line”}] 非常感谢您的帮助。 const输入=[ [{ 名称:“A”, 类型:“SC” }, { 名称:“B”, 类型:“SC” }, { 名称:“C”, 类型:“SC” }, { 名

我想合并如下数组

var series=[{Name:“A”,Type:“SC”},{Name:“B”, 类型:“SC”},{Name:“C”,类型:“SC”},{Name:“D”, 类型:“SC”},{ColumnName:“Target”,类型:“Line”}{ ColumnName:“bar”,类型:“Line”}]

非常感谢您的帮助。

const输入=[
[{
名称:“A”,
类型:“SC”
}, {
名称:“B”,
类型:“SC”
}, {
名称:“C”,
类型:“SC”
}, {
名称:“D”,
类型:“SC”
}],
{
专栏名称:“目标”,
类型:“行”
},
{
栏目名称:“酒吧”,
类型:“行”
}
];
常量输出=输入[0];
input.forEach((项目,i)=>{
如果(i>=1)输出推送(项目);
});

控制台日志(输出)您可以尝试使用。减少

var series = 
[
    [{
        Name: "A",
        Type: "SC"
    }, {
        Name: "B",
        Type: "SC"
    }, {
        Name: "C",
        Type: "SC"
    }, {
        Name: "D",
        Type: "SC"
    }], 
    {
        ColumnName: "Target",
        Type: "Line"
    },
    {
        ColumnName: "bar",
        Type: "Line"
    }
];
你可以这样做

series.reduce(
    (x,y)=>{
      return x.concat(y);
    },[]
)

这是一个单行程序,它改变了原始数组,而不是创建一个新数组

console.clear();
常量输入=[
[{
名称:“A”,
类型:“SC”
}, {
名称:“B”,
类型:“SC”
}, {
名称:“C”,
类型:“SC”
}, {
名称:“D”,
类型:“SC”
}],
{
专栏名称:“目标”,
类型:“行”
},
{
栏目名称:“酒吧”,
类型:“行”
}
];
input.forEach((项,i)=>(数组的项实例)?input.push(…项)和input.splice(i,1):false)

控制台日志(输入)这个简单的reduce怎么样

let newArr = [];
series.forEach((item) => {
  newArr = newArr.concat(item);
});
series = newArr;

仅将数组的第一个元素与除第一个元素以外的所有元素连接起来:

var系列=
[
[{
名称:“A”,
类型:“SC”
}, {
名称:“B”,
类型:“SC”
}, {
名称:“C”,
类型:“SC”
}, {
名称:“D”,
类型:“SC”
}], 
{
专栏名称:“目标”,
类型:“行”
},
{
栏目名称:“酒吧”,
类型:“行”
}
];
console.log(series[0].concat(series.slice(1));
//要将可能的二维数组展平为一维数组,请执行以下操作:
console.log(“展平:”);
console.log(
减少(
(全部,项目)=>全部混凝土(项目),
[]
)
);JS有一种可以展平阵列的方法:

const series=[[{“Name”:“A”,“Type”:“SC”},{“Name”:“B”,“Type”:“SC”},{“Name”:“C”,“Type”:“SC”},{“Name”:“D”,“Type”:“SC”}],{“ColumnName”:“Target”,“Type”:“Line”},{“ColumnName”:“bar”,“Type”:“Line”}];
常数展平=级数.展平();

原木(扁平)正确行话的可能重复将是展平一个数组,因为没有两个数组,所以不能合并两个数组。您可以选择将二维数组展平为一维数组。这基本上是
series[0]。concat(series.slice(1))
简化函数可以是
(all,item)=>all.concat(item)
,以展平(可能)二维数组。如果数组是x维的,你可以递归地减少(见我的答案)。使用concat会简单得多,并且不需要为每个元素检查累积数组
series.reduce((all,item)=>all.concat(item),[])
如果你想展平一个x维数组,你可以使用reduce和递归(见我的答案)。是的,添加一个初始值,然后可以使用concatapplied@BoundForGlory-不客气,但请看更新的答案。哇,这更干净了。非常感谢
let newArr = [];
series.forEach((item) => {
  newArr = newArr.concat(item);
});
series = newArr;
const orderedSeries = series.reduce((orderedAcum, elem) => [
    ...orderedAcum, ...(Array.isArray(elem) ? elem : [elem])
], []);