按排序顺序迭代 Javascript 关联数组
2022-08-30 05:36:27
假设我有一个Javascript关联数组(又名哈希,又名字典):
var a = new Array();
a['b'] = 1;
a['z'] = 1;
a['a'] = 1;
如何按排序顺序迭代密钥?如果它有助于简化事情,我甚至不需要值(它们都只是数字1)。
假设我有一个Javascript关联数组(又名哈希,又名字典):
var a = new Array();
a['b'] = 1;
a['z'] = 1;
a['a'] = 1;
如何按排序顺序迭代密钥?如果它有助于简化事情,我甚至不需要值(它们都只是数字1)。
您可以使用 Object.keys 内置方法:
var sorted_keys = Object.keys(a).sort()
(注意:这不适用于不支持 EcmaScript5 的非常旧的浏览器,特别是 IE6、7 和 8。有关详细的最新统计信息,请参阅此表)
您无法直接迭代它们,但可以找到所有键,然后对它们进行排序。
var a = new Array();
a['b'] = 1;
a['z'] = 1;
a['a'] = 1;
function keys(obj)
{
var keys = [];
for(var key in obj)
{
if(obj.hasOwnProperty(key))
{
keys.push(key);
}
}
return keys;
}
keys(a).sort(); // ["a", "b", "z"]
但是,没有必要使变量“a”成为数组。您实际上只是将其用作对象,并且应该像这样创建它:
var a = {};
a["key"] = "value";