在数组中的同一索引处推送多个元素
push more than one elements at same index in array
如何在 javascript 中的数组的一个索引处压入多个元素?
就像我有
arr1["2018-05-20","2018-05-21"];
arr2[5,4];
我希望第 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]
]
}
假设你想要一个多维数组,你可以把所有的输入变量放到一个数组中。使用 reduce
和 forEach
根据索引对数组进行分组。
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);
您的问题根本不正确,因为您不能在数组的同一索引处压入多个元素。您的结果是一个多维数组:
[["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)
如何在 javascript 中的数组的一个索引处压入多个元素?
就像我有
arr1["2018-05-20","2018-05-21"];
arr2[5,4];
我希望第 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]
]
}
假设你想要一个多维数组,你可以把所有的输入变量放到一个数组中。使用 reduce
和 forEach
根据索引对数组进行分组。
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);
您的问题根本不正确,因为您不能在数组的同一索引处压入多个元素。您的结果是一个多维数组:
[["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)