【问题标题】:javascript array of object with key带有键的对象的javascript数组
【发布时间】:2017-06-24 18:34:53
【问题描述】:

我一直在搜索和搜索,但没有找到解决方案……尽管它很可能很简单。我如何创建可以给我这个的东西:

myArray['key1'].FirstName = "First1";   
myArray['key1'].LastName = "Last1";   
myArray['key2'].FirstName = "First2";  
myArray['key2'].LastName = "Last2";  
myArray['key3'].FirstName = "First3";   
myArray['key3'].LastName = "Last3";

然后说类似 alert(myArray['key2'].FirstName);
我是否能够像这样迭代它:

for(i=0; i < myArray.length; i++){
    //do whatever
}

提前致谢!

【问题讨论】:

    标签: javascript arrays object key


    【解决方案1】:

    在 JavaScript 中我们使用这样的数组,[] 表示数组和对象在 {}

    var MyArray = [
                   {FirstName: "Firsname1" , LastName: "Lasname1"},
                   {FirstName: "Firsname2" , LastName: "Lasname2"}
                  ]
    

    【讨论】:

    • 感谢您的回答,但我不确定它是否能满足我的需要......当我想得更多时,我真正需要的是这样的:myArray[theKey][theIndex].FirstName;' and then loop through it like: for(i=0 ; i .... So myArray['key1'][0].FirstName = 'Fred';` 等
    • 我想你会得到你的答案here而不使用i你可以使用for key in array loop
    【解决方案2】:

    你可以像这样初始化一个对象:

    {
        "key1": {FirstName: "first1", LastName: "last1"}
        "key2": {FirstName: "first2", LastName: "last2"}
        "key3": {FirstName: "first3", LastName: "last3"}
    }
    

    初始化数组的示例函数:

    function initArray(){
      for(var i=1; i< count+1; i++) {
            var newElement = {}
        newElement.FirstName = "first" + i;
        newElement.LastName = "last" + i;
        var keyName = "key" + i
        var obj = {};
        myArray[keyName] = newElement
        }
    }
    

    现在 "myArray["key2"] 可以访问了。

    http://jsfiddle.net/jq5Cf/18/

    【讨论】:

    • 谢谢!你回答的第一部分真的让我走上了正确的道路!我这似乎像我需要的那样工作:
    • '//设置数组中的初始元素 myArray = { "key1": {FirstName: "first1", LastName: "last1"}, "key2": {FirstName: "first2",姓:“last2”},“key3”:{名:“first3”,姓:“last3”}}; //添加到数组 myArray["key4"] = {FirstName: "first4", LastName: "last4"}; //循环遍历并显示数组中每个元素的FirstName for(i=0; i
    • 再次感谢@a.u.b 正如我在上面的另一个答案中提到的,当我想得更多时,我真正需要的是这样的:myArray[theKey][theIndex].FirstName;'然后像这样循环遍历它: for(i=0; i
    • 不客气。我很高兴找到正确的道路。 :) 您能否将这些代码添加到您的问题中? (请给我投票。:))
    【解决方案3】:

    您的 myarray 变量构造是对象对象的表示法。

    var myArray = {'key1':
        {
            'FirstName' : "First1",
          'LastName' : "Last1"
        }};
    

    为了访问值应该像对象数组。

    var myArray = [
        {
        'FirstName' : "First1",
          'LastName' : "Last1"
        },
    

    ];

    或符号可以如下:

    var data = {
        code: 42,
        items: [{
            id: 1,
            name: 'foo'
        }, {
            id: 2,
            name: 'bar'
        }]
    };
    

    【讨论】:

      【解决方案4】:

      你不能在 javascript 中做你想做的事! (因为javascript不能做关联数组)

      我会选择一个具有内部数组来存储其他东西的对象

      var container = {};
      container.things = [];
      container.things.push({FirstName: 'First1', LastName: 'Last1'});
      

      现在你可以做..

      for(var i in container.things) {
          alert(container.things[i].FirstName);
      }
      

      【讨论】:

        猜你喜欢
        • 2021-06-06
        • 2018-12-22
        • 1970-01-01
        • 2014-01-19
        • 2017-06-28
        • 2016-01-24
        • 1970-01-01
        • 1970-01-01
        • 2019-03-19
        相关资源
        最近更新 更多