繁体   English   中英

Javascript多维数组

[英]Javascript Multidimension array

我想创建一个多维数组。 像这样:

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 items = [ [1, 2], [3, 4], [5, 6] ]; console.log(items[0][0]); // 1 console.log(items); 

像这样的东西:

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 ;

但是以上解决方案需要大量内存。

最好使parentArray作为Map对象。

像这样 :

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM