排序JavaScript结构
我有这样的结构:排序JavaScript结构,javascript,sorting,Javascript,Sorting,我有这样的结构: var example=[0,{ "3":4 , "6":1 , "11":2 }]; 我想把它转换成 [0,{ "6":1 , "11":2 , "3":4 }] 根据右边的数字(上升):4,1,2变为1,2,4JavaScript不保证对象的实际顺序,您需要使用数组来获得类似的结果: function sortObjectByValue(obj) { var result = []; var key; for (key in obj) {
var example=[0,{ "3":4 , "6":1 , "11":2 }];
我想把它转换成
[0,{ "6":1 , "11":2 , "3":4 }]
根据右边的数字(上升):
4,1,2
变为1,2,4
JavaScript不保证对象的实际顺序,您需要使用数组来获得类似的结果:
function sortObjectByValue(obj) {
var result = [];
var key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
arr.push({
'key': key,
'value': obj[key]
});
}
}
arr.sort(function(a, b) {
return a.value - b.value;
});
return result; // returns array
}
>>>var obj = { "3":4 , "6":1 , "11":2 };
>>>console.log(sortObjectByValue(obj))
//[Object { key="6", value=1}, Object { key="11", value=2}, Object { key="3", value=4}]
我还建议,如果您发现自己经常处理数据结构,并且需要高级方法,请检查您不能,对象是不可排序的。从技术上讲,您不能,但似乎大多数浏览器实现都会按照添加到对象的顺序对其进行迭代。@Evantimboli您不能相信这一点。是的,我知道。这就是为什么我说“从技术上说你不能,但实际上你几乎可以”。如果你想按特定的顺序存储东西,请使用数组,而不是简单的对象来存储它们。在一个数组中排序非常简单。虽然从技术上讲,在现代浏览器中可以使用普通对象来完成,但这是一个大麻烦,而且很容易出错,如果不创建一个全新的对象,很难重新排序。