繁体   English   中英

在数组中的同一索引处推送多个元素

[英]push more than one elements at same index in array

如何在JavaScript数组的一个索引中推送多个元素?

就像我有

arr1["2018-05-20","2018-05-21"];
arr2[5,4];

我希望结果第四个数组是这样的:

arr4[["2018-05-20",5],["2018-05-21",4]];

尝试像这样推:

arr1.push("2018-05-20","2018-05-21");
arr1.push(5,4);

然后最后是:

arr4.push(arr1);

但是结果却不如预期。 请有人帮忙。

实际上我想在zingChart中将其用作:

选项数据创建一个选项对象,并添加一个由数组组成的值数组。

日历值在每个数组中,以以下格式为日历日期提供相应的数字值。

 options: {
  values: [
    ['YYYY-MM-DD', val1],
    ['YYYY-MM-DD', val2],
    ...,
    ['YYYY-MM-DD', valN]
  ]
}

您的问题根本不正确,因为您不能在数组的同一索引中推送多个元素。 您的结果是一个多维数组:

[["2018-05-20",5],["2018-05-21",4]]
  • 您必须创建一个多维数组来收集所有数据(arrAll)
  • 然后您创建另一个多维数组(arrNew),重新排列先前的数据

请尝试以下操作:

 // Your Arrays var arr1 = ["2018-05-20","2018-05-21"]; var arr2 = [5, 4]; //var arr3 = [100, 20]; var arrAll = [arr1, arr2]; //var arrAll = [arr1, arr2, arr3]; // New Array definition var arrNew = new Array; for (var j = 0; j < arr1.length; j++) { var arrTemp = new Array for (var i = 0; i < arrAll.length; i++) { arrTemp[i] = arrAll[i][j]; if (i === arrAll.length - 1) { arrNew.push(arrTemp) } } } //New Array Logger.log(arrNew) 

假设您需要一个多维数组,则可以将所有输入变量放入数组中。 使用reduceforEach基于索引对数组进行分组。

 let arr1 = ["2018-05-20","2018-05-21"]; let arr2 = [5,4]; let arr4 = [arr1, arr2].reduce((c, v) => { v.forEach((o, i) => { c[i] = c[i] || []; c[i].push(o); }); return c; }, []); console.log(arr4); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM