javascript中的三维数组

时间:2016-11-01 12:01:33

标签: javascript

var a = new Array();
var b  = [1,2,3,4,5,6,7];
for(i in b){a[i] = new Array(new Array());}
a[0][1][2] = Math.random();// error:VM205:1 Uncaught TypeError: Cannot set property '2' of undefined(…)

如何在javascript中使用三维数组?

我的意思是如何像java一样使用它 例如:double a = new double[length][length][length];

如何提前记忆。

3 个答案:

答案 0 :(得分:2)

在Javascript中,事先没有实例化变量,并且没有编译时内存分配这样的东西,因为,嘿,没有编译时间!但如果你真的希望这样做,那它就不像Java那么简单:

const length = 7;
const range = new Array(length).fill();
const array = range.map(e => range.map(e => range.map(e => e)));

console.log(JSON.stringify(array)); // -> "[[[null,null,null],[null,null,null],[null,null,null]],[[null,null,null],[null,null,null],[null,null,null]],[[null,null,null],[null,null,null],[null,null,null]]]"

唯一的一点是,只要您保持[0,长度]边界,您就可以始终确保array[x][y][z]x和{y z {1}}不会抛出TypeError。

答案 1 :(得分:0)

你可以这样做



const items = [[[]]] // init 3d array

// assign values
items[0][0][0] = 0
items[0][0][1] = 1
items[0][0][2] = 2

// display
for (const i of items) {
  for (const j of i) {
    for (const k of j) {
      console.log('k = ', k)
    }
  }
}




答案 2 :(得分:0)

类似于rishat的答案,但长度不同。

const array1 = Array(2).fill().map(e => Array(4).fill().map(e => Array(3).fill("3").map(e => e)));
console.log(JSON.stringify(array1));