获取JavaScript多维数组的名称,而不是子项

时间:2016-11-19 03:57:18

标签: javascript jquery arrays multidimensional-array

我有一个JavaScript多维数组,它有多个具有大量子值的值。这就是我的意思:

var items = {
    "Area": [
        "Feet",
        "Meters"
    ],
    "Frequency": [
        "Hertz",
        "Kilohertz"
    ]
};

我想循环浏览每个第一维项目(如区域和频率)。我不想循环遍历子值,而是获取第一个维度值的名称。

这是我要循环的代码:

$(function() {
    $.each(items, function(index) {
        $(".category").append("<option>" + items[index].text + "</option>");
    });
});

为了确保,我想获取每个第一维值的名称,例如Area和Frequency。我尝试过.text,.val,.val()(jQuery),.innerHTML等等,但似乎没什么用。

编辑:在[index]项之后不设置任何内容只返回每个第一维项目的子值。

2 个答案:

答案 0 :(得分:3)

你所拥有的而不是多维数组是一个对象(或地图,hashmap,无论它在其他语言中被调用;)

要获取所有密钥,您可以使用Object.keys(myObj);

&#13;
&#13;
var items = {
    "Area": [
        "Feet",
        "Meters"
    ],
    "Frequency": [
        "Hertz",
        "Kilohertz"
    ]
};

var keys = Object.keys(items);
console.log(keys);

// iterate through them
keys.forEach(function(item, index) {
  console.log(index, item);
});
&#13;
&#13;
&#13;

答案 1 :(得分:1)

执行items[index]时,表示您引用的是items的值。 index是关键,items[index]是值。试试这段代码:

&#13;
&#13;
var items = {
  "Area": [
    "Feet",
    "Meters"
  ],
  "Frequency": [
    "Hertz",
    "Kilohertz"
  ]
};
$(function() {
  $.each(items, function(index, value) {
    $(".category").append("<option>" + index + "</option>");
    console.log(index);
    console.log(value);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;