我需要在javascript中创建对象,允许使用键和&获取值。也迭代键。主要要求是按键获取值,但需要迭代以按值(整数)维护条目的排序顺序。
如何创建这样的对象?
答案 0 :(得分:1)
for
in
循环遍历对象的键。 答案 1 :(得分:1)
sampleJson={
"1":"john",
"2":"johny"
}
您可以使用for循环
进行迭代for(key in sampleJson){
//ur code
}
答案 2 :(得分:0)
本机对象并不完全支持您正在寻找的内容,但是在本机对象周围创建一个提供额外功能的包装器非常简单。
可能的方法:
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"]
换句话说,键按其相关值排序。这可能不是你想要的,但它应该是接近的。