代码之家  ›  专栏  ›  技术社区  ›  Trombone0904

带描述的Javascript多维数组

  •  0
  • Trombone0904  · 技术社区  · 5 年前

    我想要一个这样的数组:

    array['parameter1'] = 1,2,3,4
    array['parameter2'] = A,B,C,D
    

    (简单解释)

    稍后我会这样称呼它:

    alert(array['parameter2']) 得到“A,B,C,D”

    目前,我有一个简单的数组:

    var array = [];
    $.each($("input[name='checkbox']:checked"), function(){            
       array.push($(this).val());
    });
    

    但这没用。 需要帮助,请:)

    4 回复  |  直到 5 年前
        1
  •  1
  •   Mirakurun    5 年前

    在javascript中不使用关联数组,因为

    如果使用命名索引,javascript会将数组重新定义为标准对象。之后,一些数组方法和属性将产生不正确的结果。

    为此,您将使用对象。

    你可以这样写:

    let obj = {
        parameter1: ["A", "B", "C", "D"],
        parameter2: [1, 2, 3, 4]
    }
    

    您还可以通过说:

    obj.parameter3 = [5, 6] //some values in that array.

    obj["parameter3"] = [5, 6]
    

    如果要从对象获取值,可以这样访问它:

    console.log(obj.parameter1)
    
        2
  •  1
  •   holydragon    5 年前

    下面是您应该如何初始化对象,以便使您的逻辑更容易。

    这里的代码片段还显示了如何调用参数对象内的每个数组。

    let parameters = {
      parameter1: [1, 2, 3, 4],
      parameter2: ['A', 'B', 'C', 'D']
    }
    console.log(parameters)
    console.log(parameters['parameter1'])
    console.log(parameters['parameter2'])
        3
  •  0
  •   Ashish    5 年前

    数组索引基于数字。您可以添加命名索引,但这会导致不希望出现的情况。你可以多读一些 here

    对于你的情况,我建议你使用一个物体。 例子:

    var yourObj = {}
    //If you want to push some data
    if(yourObj.parameter1){
        yourObj.parameter1 = ['My Value 2']
    }
    else{
        yourObj.parameter1.push('My Value 2')
    }
    
    console.log(yourObj.parameter1)
    
        4
  •  0
  •   Nick Parsons    5 年前

    您可以使用JavaScript对象而不是数组。对象包含 key 和A value . 你可以想象一个对象就像一个数组(事实上数组实际上是JS中引擎盖下的对象),但是你不用使用索引来访问元素,而是使用 钥匙 .

    以上面的例子为例,您可以使用这样的对象:

    var obj = {}; // create empty object to add key-value pairs into
    obj["parameter2"] = "A,B,C,D"; // add a key-value pair into the object
    

    上面的符号表示,设置 钥匙 成为 paramter2 哪个有 价值 属于 "A,B,C,D" . 现在你可以使用 obj["parameter2"] (或) obj.parameter2 )访问 价值 储存在钥匙处 paremeter2 .

    请参见下面的可运行示例:

    var obj = {}
    obj["parameter1"] = "1,2,3,4";
    obj["parameter2"] = "A,B,C,D";
    
    console.log(obj["parameter1"]);
    console.log(obj["parameter2"]);
    console.log(obj.parameter2); // same as above (accessing value using dot notation)