Javascript多维数组

Javascript多维数组,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我想创建一个多维数组。 大概是这样的: array( 1234=>array( "customInfo1"=>1 "customInfo2"=>2 ), 5678=>array( "customInfo1"=>3 "customInfo2"=>4 ) ) 我试着这么做 var myarray = []; function headerBuffer(transId

我想创建一个多维数组。 大概是这样的:

array(
    1234=>array(
        "customInfo1"=>1
        "customInfo2"=>2
    ),
    5678=>array(
        "customInfo1"=>3
        "customInfo2"=>4 
    )
)
我试着这么做

var myarray = [];
function headerBuffer(transId,column,value){
    myarray [transId][column] = value;
}

我必须创建并更新此阵列。如果输入字段被更新,此函数将再次运行,新记录必须插入或更新数组。

PHP的关联数组是JS中的对象。所以你需要做:

let obj = {
    "1234": {
        "customInfo1": 1,
        "customInfo2": 4
    },
    "5678": {
        "customInfo1": 3,
        "customInfo2": 4
    }
}
不过,JS中的对象键只能是字符串,所以需要考虑这一点

因此,您需要将代码修改为:

var obj = {};
function headerBuffer(transId,column,value){
    // If transId does not exist yet, make it an empty object
    if (!obj[transId] {
        obj[transId] = {};
    }
    obj[transId][column] = value;
}
试试这个:

var项目=[
[1, 2],
[3, 4],
[5, 6]
];
console.log(项[0][0]);//1.
控制台日志(项目)类似以下内容:

var val1 = '1234'
var val2 = '43456'

var parentArray = [];
var childArray1 = [1,2,3,4];
var childArray2 = [4,3,4,5,6];

parentArray[val1] = childArray1 ;
parentArray[val2] = childArray2 ;
var parentMap = new Map();


var val1 = '1234'
var val2 = '43456'

var childArray1 = [1,2,3,4];
var childArray2 = [4,3,4,5,6];

parentMap.set(val1 , childArray1);
parentMap.set(val2 , childArray2);
但上述解决方案需要大量内存

最好将parentArray设置为映射对象

像这样:

var val1 = '1234'
var val2 = '43456'

var parentArray = [];
var childArray1 = [1,2,3,4];
var childArray2 = [4,3,4,5,6];

parentArray[val1] = childArray1 ;
parentArray[val2] = childArray2 ;
var parentMap = new Map();


var val1 = '1234'
var val2 = '43456'

var childArray1 = [1,2,3,4];
var childArray2 = [4,3,4,5,6];

parentMap.set(val1 , childArray1);
parentMap.set(val2 , childArray2);
要获取parentMap的值,请执行以下操作:

parentMap.get(val1);
parentMap.get(val2);

答案是否定的。如果我得到一个新的“customInfoX”,那么之前的键和值就会消失。所以我不能创建“customInfo1”:3和“customInfo2”:4等等。你知道吗?
obj[transId][column]=value只需将新的
customInfo
添加到现有的keyvar objassd={};函数headerBuffer(transId,column,value){objassd[transId]={};objassd[transId][column]=value;}现在是。当函数使用另一个“列”再次运行时,它是上一个键(“列”)和值消失。我只是修复了答案,即只覆盖该列,而不是整个transId。请注意,循环对象的方式与常规数组不同。当我要添加新元素或更新时,应该如何使用它?