我需要在 javascript 中创建允许使用键获取值并迭代键的对象。主要要求是按键获取值,但需要迭代以按值(整数)维护条目的排序顺序。
我该如何去创建这样一个对象?
我需要在 javascript 中创建允许使用键获取值并迭代键的对象。主要要求是按键获取值,但需要迭代以按值(整数)维护条目的排序顺序。
我该如何去创建这样一个对象?
for
in
循环遍历对象的键。sampleJson={
"1":"john",
"2":"johny"
}
您可以使用 for in 循环进行迭代
for(key in sampleJson){
//ur code
}
本机对象并不完全支持您正在寻找的内容,但是创建一个围绕本机对象的包装器以提供额外的功能是相当简单的。
一种可能的方法:
function KeySortArr(obj) {
this.obj = obj || {};
}
KeySortArr.prototype = {
get: function(key) {
return this.obj[key];
},
set: function(key, value) {
this.obj[key] = value;
},
keys: function() {
var keys = [];
for(var i in this.obj) {
if (this.obj.hasOwnProperty(i))
keys.push(i);
}
return keys;
},
getKeysSortedByValue: function() {
var obj = this.obj;
return this.keys().sort(function(a, b) {
return obj[a] > obj[b];
});
}
};
用法:
var arr = new KeySortArr();
arr.set("test", 4);
arr.set("another", 2);
arr.set("ok", 60);
arr.set("last", 14);
然后如下:
arr.getKeysSortedByValue();
回报:
["another, "test", "last", "ok"]
换句话说,键按其关联值排序。这可能不是您想要的,但应该很接近。