Javascript 如何根据js中键的值按升序对对象进行排序?
如何在javascript中对值1,99,1,50进行排序 这里是输入: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)) {
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
使它更整洁,但它看起来是在工作吗?