Javascript 二维动态关联数组

Javascript 二维动态关联数组,javascript,arrays,associative-array,Javascript,Arrays,Associative Array,有没有可能做出这样的事情: var fieldObjArray = Array();; for(var k in SpesificPropertiesInfo){ var fieldTable = createFieldTable(SpesificPropertiesInfo[k]); fieldObjArray[SpesificPropertiesInfo[k].fieldName]['fieldStatus'] = SpesificPropertie

有没有可能做出这样的事情:

var fieldObjArray = Array();;

    for(var k in SpesificPropertiesInfo){
        var fieldTable = createFieldTable(SpesificPropertiesInfo[k]);
        fieldObjArray[SpesificPropertiesInfo[k].fieldName]['fieldStatus'] = SpesificPropertiesInfo[k].fieldStatus;
        fieldObjArray[SpesificPropertiesInfo[k].fieldName]['fieldName'] = SpesificPropertiesInfo[k].fieldName;
        fieldObjArray[SpesificPropertiesInfo[k].fieldName]['columnName'] = SpesificPropertiesInfo[k].columnName;
    }
我想创建一个数组,它的第一个维度是关联的(并且动态//我在开头不知道它的名称),第二个维度是关联的,但我知道它的名称。

是的。是的

但是,请使用对象,而不是数组。 JS中的数组仅适用于索引
0…n
,不能与索引
一起正常工作。。。在
中,也可以

var myObj = {},

    key = "",
    val = "";

for (key in yourObj) {
    if (yourObj.hasOwnProperty(key)) {
        val = yourObj[key];
        myObj[val.fieldname] = {
            fieldStatus: val.fieldStatus,
            fieldName: val.fieldName,
            colName: val.colName
        };

        //...
    }
}

你现在有了一个
myObj
,它有了
yourObj
的所有主要索引,每个索引都是一个对象,包含了第二维度的属性…

使用对象就是这样:)@VladIoffe你为什么需要它成为一个数组?我会纠正我自己,我需要这个对象的数组hanks,但是有没有办法按照我的要求制作它(关联)?这怎么不关联?如果你想做什么,a)性能会大大降低(JS引擎会将数组变回对象…),基于数组的方法(如
splice
会中断,使用
for(i=0;…)
的循环会中断,结果中会出现数组方法名称。。。在这里,您想要的确切功能是什么?var fieldObjArray=new Array();对于(SpesificPropertiesInfo中的var k){var fieldTable=createFieldTable(SpesificPropertiesInfo[k]);fieldObjArray[SpesificPropertiesInfo[k].fieldName]=new Array();fieldObjArray[SpesificPropertiesInfo[k]。fieldStatus;fieldObjArray[SpesificPropertiesInfo[k].fieldName]['fieldName']=SpesificPropertiesInfo[k].fieldName;fieldObjArray[SpesificPropertiesInfo[k].fieldName]['columnName']=SpesificPropertiesInfo[k].columnName;}很抱歉回答这个问题(我的声誉太低,无法回答我自己的问题)。如果有人能帮我,那就太好了。你可以看到我上面问题的答案(它对我有效)。谢谢大家……是的。。。然后JS将其视为一个对象,除了当您查找属性时,还会得到
pop
push
shift
unshift
splice
length
map
reduce
forEach
,等等。。。你到底在找什么?您可以强制它这样做,但是一旦您开始为(myArray中的k){…}执行
,您就会遇到另一个SO问题,因为您一直在尝试访问函数的属性。。。