hol*_*ard 2 javascript arrays undefined multidimensional-array
我尝试从另一个多维数组创建一个新的多维数组.第一个数组如下所示:
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
Run Code Online (Sandbox Code Playgroud)
...然后我有一个名为'results'的数组,其中包含数字(例如1,20,23).我想要做的是创建一个新的多维数组,就像第一个,但只有第一个中的元素才能在数组'results'中找到数字.
以下是我到目前为止尝试不起作用.当我运行代码时,我收到以下错误消息:
Uncaught TypeError: Cannot set property '0' of undefined) <- line 5
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
1: var newArray = [];
2:
3: for (var i = 0; i < results.length; i++) {
4: var index = results[i]
5: newArray[0][i] = array[0][index];
6: newArray[1][i] = array[1][index];
7: newArray[2][i] = array[2][index];
8: newArray[3][i] = array[3][index];
9: }
Run Code Online (Sandbox Code Playgroud)
你总是需要初始化数组:
newArray[0] = [];
Run Code Online (Sandbox Code Playgroud)
像在这个例子中:
var newArray = [];
// newArray[12345] is undefined
newArray[12345][2] = 3; // error!
Run Code Online (Sandbox Code Playgroud)
newArray[12345]是undefined,并且您希望将未定义的元素视为数组.所以在你能做到这一点之前,你需要将子阵列初始化:
var newArray = [];
newArray[12345] = []; // now "newArray[12345]" is new subarray
newArray[12345][2] = 3;
Run Code Online (Sandbox Code Playgroud)
编辑:
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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |