Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 创建新多维数组时出现问题_Javascript_Arrays_Multidimensional Array_Undefined - Fatal编程技术网

Javascript 创建新多维数组时出现问题

Javascript 创建新多维数组时出现问题,javascript,arrays,multidimensional-array,undefined,Javascript,Arrays,Multidimensional Array,Undefined,我尝试从另一个多维数组创建一个新的多维数组。第一个数组如下所示: array[0][0] = foo array[0][1] = foo2 ...and so on array[1][0] = 123 array[1][1] = 234 ...and so on array[2][0] = blue array[2][1] = red ...and so on array[3][0] = fish array[3][1] = bird ...and so on …然后我有一个名为“result

我尝试从另一个多维数组创建一个新的多维数组。第一个数组如下所示:

array[0][0] = foo
array[0][1] = foo2
...and so on
array[1][0] = 123
array[1][1] = 234
...and so on
array[2][0] = blue
array[2][1] = red
...and so on
array[3][0] = fish
array[3][1] = bird
...and so on
…然后我有一个名为“results”的数组,其中包含一组数字(例如1、20、23)。我想做的是创建一个新的多维数组,就像第一个一样,但只包含第一个数组中的元素,这些元素在数组“results”中作为数字出现

下面是我迄今为止的尝试,但没有成功。运行代码时,我收到以下错误消息:

Uncaught TypeError: Cannot set property '0' of undefined) <- line 5

未捕获类型错误:无法设置未定义的属性“0”)始终需要初始化数组:

newArray[0] = [];

如本例所示:

var newArray = [];
// newArray[12345] is undefined
newArray[12345][2] = 3; // error!
newArray[12345]
未定义的
,您希望将未定义的元素视为数组。因此,在执行此操作之前,需要初始化子阵列:

var newArray = [];
newArray[12345] = []; // now "newArray[12345]" is new subarray
newArray[12345][2] = 3;

编辑:

var newArray = [];

for (var i = 0; i <= 3; i++) {
    newArray[i] = []; 
    //newArray[i] = new Array(); - same thing
}

for (var i = 0; i < results.length; i++) {
    var index = results[i]
    newArray[0][i] = array[0][index];
    newArray[1][i] = array[1][index];
    newArray[2][i] = array[2][index];
    newArray[3][i] = array[3][index];
}
var newArray=[];

for(vari=0;i Ok,那么“for(vari=0;i<4;i++){newArray[i]=[];}”应该有效吗?@holyredbeard yep,请看我的答案
var newArray = [];

for (var i = 0; i <= 3; i++) {
    newArray[i] = []; 
    //newArray[i] = new Array(); - same thing
}

for (var i = 0; i < results.length; i++) {
    var index = results[i]
    newArray[0][i] = array[0][index];
    newArray[1][i] = array[1][index];
    newArray[2][i] = array[2][index];
    newArray[3][i] = array[3][index];
}