Javascript Multidimension数组

时间:2017-12-24 14:17:42

标签: javascript arrays multidimensional-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;
}

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

3 个答案:

答案 0 :(得分:1)

PHP&#39>关联数组是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;
}

答案 1 :(得分:0)

试试这个:



var items = [
  [1, 2],
  [3, 4],
  [5, 6]
];
console.log(items[0][0]); // 1
console.log(items);




答案 2 :(得分:0)

这样的事情:

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