我需要在javascript中创建对象,它允许使用键来获取值&也可以迭代键。主要需求是按键获取值,但需要迭代来维护按值(整数)的条目排序顺序。
如何创建这样的对象?
发布于 2012-09-24 13:33:15
sampleJson={
"1":"john",
"2":"johny"
}您可以使用for in循环进行迭代
for(key in sampleJson){
//ur code
}发布于 2012-09-24 13:29:49
for in循环迭代对象的键。发布于 2012-09-24 14:44:20
原生对象并不完全支持您正在寻找的东西,但是在原生对象周围创建一个包装器来提供额外的功能是相当简单的。
一种可能的方法:
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"]换句话说,键是按其关联值排序的。这可能不是您想要的,但应该很接近。
https://stackoverflow.com/questions/12559282
复制相似问题