Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
排序JavaScript结构_Javascript_Sorting - Fatal编程技术网

排序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您不能相信这一点。是的,我知道。这就是为什么我说“从技术上说你不能,但实际上你几乎可以”。如果你想按特定的顺序存储东西,请使用数组,而不是简单的对象来存储它们。在一个数组中排序非常简单。虽然从技术上讲,在现代浏览器中可以使用普通对象来完成,但这是一个大麻烦,而且很容易出错,如果不创建一个全新的对象,很难重新排序。