Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一个阵列推送到另一个阵列以形成2级阵列?_Javascript_Arrays - Fatal编程技术网

Javascript 如何将一个阵列推送到另一个阵列以形成2级阵列?

Javascript 如何将一个阵列推送到另一个阵列以形成2级阵列?,javascript,arrays,Javascript,Arrays,虽然我的目标是制作这样的数组,但这听起来可能令人困惑 var array2D= [ { locations: [0, 0, 0], status: ["", "", ""] }, { locations: [0, 0, 0], status: ["", "", ""] }, { locations: [0, 0, 0], status: ["", "", ""] } ], 请考虑,如果我有如下数组, var locations = [0,0,0]; var status

虽然我的目标是制作这样的数组,但这听起来可能令人困惑

var array2D= [
    { locations: [0, 0, 0], status: ["", "", ""] },
    { locations: [0, 0, 0], status: ["", "", ""] },
    { locations: [0, 0, 0], status: ["", "", ""] }
],
请考虑,如果我有如下数组,

var locations = [0,0,0];
var status = ["","",""]; 
我能用什么方法把它们做成二维阵列吗? 我试过这样的东西,但没用

var the2Darray =[];
the2Darray.push(location,status);

您必须创建一个对象,将键作为位置,并将状态分配给它们相应的数组,然后只需推送到新数组

var 2dArray = [];
for(var i = 0; i < lengthYouWant; i++) {
    var locations = [1,2,3];
    var status = ["a", "b", "c"];
    var obj = {locations : locations, status : status};
    2dArray.push(obj);
}
var 2dArray=[];
for(var i=0;i
您必须创建一个对象,将键作为位置并将状态分配给相应的数组,然后只需推送到新数组

var 2dArray = [];
for(var i = 0; i < lengthYouWant; i++) {
    var locations = [1,2,3];
    var status = ["a", "b", "c"];
    var obj = {locations : locations, status : status};
    2dArray.push(obj);
}
var 2dArray=[];
for(var i=0;i
假设您需要独立的数组,而不需要用于字符串、数字、布尔值、null、未定义、符号(ECMAScript 2015中新增)的副本

var位置=[0,0,0],
状态=[“”,“”,“”];
数组=[],
l=3;
而(l--){
push({locations:locations.slice(),status:status.slice()});
}
数组[2]。位置[0]=42;
console.log(数组)

.as console wrapper{max height:100%!important;top:0;}
假设您需要独立的数组,而不需要用于字符串、数字、布尔值、null、未定义的符号等的副本(ECMAScript 2015中新增)

var位置=[0,0,0],
状态=[“”,“”,“”];
数组=[],
l=3;
而(l--){
push({locations:locations.slice(),status:status.slice()});
}
数组[2]。位置[0]=42;
console.log(数组)

.as console wrapper{max height:100%!important;top:0;}
您试图创建的不是2D数组。您需要澄清部分逻辑才能回答此问题:例如,为什么在最终数组中有3行,为什么没有2行?另外,从技术上讲,这不是一个2D数组,它是一个一维数组中的一组对象…实际上,你想创建一个对象数组,这样每个对象都有位置和状态属性,这两个属性都是数组。显然,我搞错了,谢谢大家的回答!你要做的不是2D数组。你需要澄清这个问题的部分逻辑才能得到答案:例如,为什么你在最后一个数组中得到3行,为什么不是2行?另外,从技术上讲,这不是一个2D数组,它是一个一维数组中的一组对象…实际上,你想创建一个对象数组,这样每个对象都有位置和状态属性,这两个属性都是数组。显然,我搞错了,谢谢大家的回答!谢谢!它就像一个符咒。看来我弄错逻辑了,谢谢!它就像一个符咒。似乎我弄错了逻辑这有点复杂,但看起来很优雅,我稍后会试试的谢谢!这有点复杂,但看起来很优雅,我以后会试试的谢谢!