我在 JavaScript 中有一个关联数组:
var dictionary = {
"cats": [1,2,3,4,5],
"dogs": [6,7,8,9,10]
};
我如何获得这本字典的键?即,我想要
var keys = ["cats", "dogs"];
只是为了使术语正确 - JavaScript 中没有“关联数组”这样的东西 - 从技术上讲object
,这只是 an并且它是我们想要的对象键。
我在 JavaScript 中有一个关联数组:
var dictionary = {
"cats": [1,2,3,4,5],
"dogs": [6,7,8,9,10]
};
我如何获得这本字典的键?即,我想要
var keys = ["cats", "dogs"];
只是为了使术语正确 - JavaScript 中没有“关联数组”这样的东西 - 从技术上讲object
,这只是 an并且它是我们想要的对象键。
试试这个:
var keys = [];
for (var key in dictionary) {
if (dictionary.hasOwnProperty(key)) {
keys.push(key);
}
}
hasOwnProperty
是必需的,因为可以将键插入到 的原型对象中dictionary
。但是您通常不希望这些键包含在您的列表中。
例如,如果您这样做:
Object.prototype.c = 3;
var dictionary = {a: 1, b: 2};
然后做一个for...in
循环了dictionary
,你会得到a
和b
,但你也将获得c
。
for (var key in dictionary) {
// Do something with key
}
这是for..in 语句。
您可以使用: Object.keys(obj)
例子:
var dictionary = {
"cats": [1, 2, 37, 38, 40, 32, 33, 35, 39, 36],
"dogs": [4, 5, 6, 3, 2]
};
// Get the keys
var keys = Object.keys(dictionary);
console.log(keys);
请参阅下面的参考以了解浏览器支持。它在 Firefox 4.20、Chrome 5 和 Internet Explorer 9 中受支持。Object.keys()包含一个代码片段,如果Object.keys()
您的浏览器不支持,您可以添加该代码片段。
简单的jQuery方式:
这是我使用的:
DictionaryObj 是您要查看的 JavaScript 字典对象。和value,关键当然是他们在字典中的名字。
$.each(DictionaryObj, function (key, value) {
$("#storeDuplicationList")
.append($("<li></li>")
.attr("value", key)
.text(value));
});