多维Javascript开放数组

多维Javascript开放数组,javascript,arrays,Javascript,Arrays,我在分配和检索开放数组中元素的值时遇到困难,数组的大小和维度不是固定的,因此在迭代过程中它会膨胀或收缩。我将数组声明为var节点[]尝试分配、检索值和获取数组中任何维度的长度会导致错误的值。特别是使用varle=NODES[0].length代码我希望看到第一维度的总长度 var NODES =[[]] scene = editor.scene; scene.traverse( function(e) { if ( (e instanceof THREE.Lin

我在分配和检索开放数组中元素的值时遇到困难,数组的大小和维度不是固定的,因此在迭代过程中它会膨胀或收缩。我将数组声明为
var节点[]尝试分配、检索值和获取数组中任何维度的长度会导致错误的值。特别是使用
varle=NODES[0].length代码我希望看到第一维度的总长度

    var NODES =[[]]
    scene = editor.scene;
    scene.traverse( function(e) {

    if ( (e instanceof THREE.Line) && (e.name = 'main line' ) )
    {

        for (i=0; i<e.geometry.vertices.length; i++){

            var x = e.position.x+ e.geometry.vertices[i].x
            var y = e.position.y+ e.geometry.vertices[i].y
            var z = e.position.z+ e.geometry.vertices[i].z      

            NODES[node_cnt,0] = x;
            NODES[node_cnt,1] = y;
            NODES[node_cnt,2] = z;
            node_cnt++;
        }

     cnt++;      

    }; 
    var le = NODES[0].length ;


EXPECTED RESULT 
NODES[0][0] = 10; NODES[0][1] = 20;  NODES[0][3] = 30; 
NODES[1][0] = 40; NODES[1][1] = 50;  NODES[1][3] = 60; 
NODES[2][0] = 70; NODES[2][1] = 80;  NODES[2][3] = 90; 

with `var le = NODES[0].length ;` I expect to see 3 because I'm requesting the length of 1st dimension
var节点=[]]
scene=editor.scene;
场景.遍历(函数(e){
if((e instanceof THREE.Line)&&(e.name='main Line'))
{

对于(i=0;i这是多维数组的javascript解释,节点是一个数组,实际上包含3个数组,节点中包含的每个数组都包含一个字符串:

    var NODES = [[],[],[]];

    for (var i = 0; i < 10 ; i++) {
        NODES[0].push(i + 'x');
        NODES[1].push(i + 'y');
        NODES[2].push(i + 'z');


    }
    console.log(NODES[0].lenght);
对不起,我不太清楚
node\u cnt
cnt
是什么意思,但我认为您应该这样做:

var NODES =[[],[],[]]
    scene = editor.scene;
    scene.traverse( function(e) {

    if ( (e instanceof THREE.Line) && (e.name = 'main line' ) )
    {

        for (i=0; i<e.geometry.vertices.length; i++){

            var x = e.position.x+ e.geometry.vertices[i].x
            var y = e.position.y+ e.geometry.vertices[i].y
            var z = e.position.z+ e.geometry.vertices[i].z      

            NODES[0].push(x);
            NODES[1].push(y);
            NODES[2].push(z);
            node_cnt++;
        }

     cnt++;      

    }; 
    var le = NODES[0].length ;
var节点=[]、[]、[]
scene=editor.scene;
场景.遍历(函数(e){
if((e instanceof THREE.Line)&&(e.name='main Line'))
{

对于(i=0;i这里有什么问题?除了
节点[node\u cnt,0]
整个数组结构没有产生正确的值,它没有分配2D数组,我设置了断点来监视数组,在那里我可以看到数组从来没有被解释为2D,这是我的意图。你为什么要做
节点[node\u cnt,0]
?这些行中的每一行都将等价于
节点[0]
节点[1]
节点[2]
我将其更改为
节点[node\u cnt][0]=x;
没有任何显著的效果我认为我没有用正确的javascript语法正确地分配开放数组,它类似于独立编译器中的嵌套数组,其中数组是开放的,但我不确定它在javascript中是否有效。是的,现在这是有意义的,让我再仔细研究一下,我会接受它作为回答。
var NODES =[[],[],[]]
    scene = editor.scene;
    scene.traverse( function(e) {

    if ( (e instanceof THREE.Line) && (e.name = 'main line' ) )
    {

        for (i=0; i<e.geometry.vertices.length; i++){

            var x = e.position.x+ e.geometry.vertices[i].x
            var y = e.position.y+ e.geometry.vertices[i].y
            var z = e.position.z+ e.geometry.vertices[i].z      

            NODES[0].push(x);
            NODES[1].push(y);
            NODES[2].push(z);
            node_cnt++;
        }

     cnt++;      

    }; 
    var le = NODES[0].length ;