Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 如何根据js中键的值按升序对对象进行排序?_Javascript_Sorting - Fatal编程技术网

Javascript 如何根据js中键的值按升序对对象进行排序?

Javascript 如何根据js中键的值按升序对对象进行排序?,javascript,sorting,Javascript,Sorting,如何在javascript中对值1,99,1,50进行排序 这里是输入:var-map={test:1,test2:99,test3:1,test4:50} 以下是目标输出:{test2:99、test4:50、test3:1、test:1} 以下是我尝试过的: function sortMap(map) { var temp = []; for(let prop in map) { if(map.hasOwnProperty(prop)) {

如何在javascript中对值1,99,1,50进行排序

这里是输入:
var-map={test:1,test2:99,test3:1,test4:50}

以下是目标输出:
{test2:99、test4:50、test3:1、test:1}

以下是我尝试过的:

function sortMap(map) {
    var temp = [];
    for(let prop in map) {
        if(map.hasOwnProperty(prop)) {
            temp.push({name:prop, size:map[prop]});
        }
    }
    return temp.sort(function(b, a) {
        return a.size - b.size
    });
}

实际上,您无法对对象的键进行排序,但可以对键进行排序并相应地获取值

var-map={test:1,test2:99,test3:1,test4:50},
keys=Object.keys(map).sort(函数(a,b){returnmap[b]-map[a];});
键。forEach(函数(k){
写(k+':'+map[k]+'
');
});我想应该是b-A您的输入与输出相同。你的
sortMap
函数返回一个数组,而不是一个对象,这似乎更适合你的任务。对象本身没有“顺序”。你可以使用
object.keys
和链接
map
sort
使它更整洁,但它看起来是在工作吗?