Javascript 我想根据属性键值对从对象返回的项目进行排序,然后为接口中的每个项目分配一个排名(1、2、3…等等)
这里有一个基本问题。这是我的目标:Javascript 我想根据属性键值对从对象返回的项目进行排序,然后为接口中的每个项目分配一个排名(1、2、3…等等),javascript,arrays,object,properties,key,Javascript,Arrays,Object,Properties,Key,这里有一个基本问题。这是我的目标: {TestOne: 12, TestTwo: 6, TestThree: 4, TestFour: 2} 我使用for-in循环遍历它,获取属性并将其显示在我的UI中,如下所示: 测试一:12 测试二:6 测试三:4 测试四:2 我需要能够通过给每个项目一个数字排名(1,2,3,4…等等)来显示它们,然后通过该排名(对应于它们的实际顺序)来显示它们。换句话说,我的用户需要在屏幕上看到的是: 测试一:4 测试二:3 测试三:2 测试四:1 不是12,6
{TestOne: 12, TestTwo: 6, TestThree: 4, TestFour: 2}
我使用for-in循环遍历它,获取属性并将其显示在我的UI中,如下所示:
- 测试一:12
- 测试二:6
- 测试三:4
- 测试四:2
- 测试一:4
- 测试二:3
- 测试三:2
- 测试四:1
var rank = "";
var title = objArrayTwo[i].Title;
var summary ={};
summary = groupBy(objArrayTwo);
for (var prop in summary) {
if (summary.hasOwnProperty(prop)) {
if(title == `${prop}`){
rank = `${summary[prop]}`;
}
}
}
function groupBy(items){
var result= {};
var sum;
$.each(items, function(index, item) {
sum = result[item.RequestName] || 0;
result[item.RequestName] = sum + parseInt(item.Rank);
});
return result;
}
var obj={TestOne:12,TestTwo:6,TestThree:4,TestFour:2};
//对数组进行排序
var arr=对象条目(obj);
arr.sort((a,b)=>a[1]-b[1]);
//枚举数组,索引将是秩
var arr_,其秩=arr.map((数据,索引)=>[data[0],index+1])。反向()
arr_与_rank.forEach(x=>console.log(x[0]+”:“+x[1])对齐代码>
var obj={TestOne:12,TestTwo:6,TestThree:4,TestFour:2};
//对数组进行排序
var arr=对象条目(obj);
arr.sort((a,b)=>a[1]-b[1]);
//枚举数组,索引将是秩
var arr_,其秩=arr.map((数据,索引)=>[data[0],index+1])。反向()
arr_与_rank.forEach(x=>console.log(x[0]+”:“+x[1])对齐代码>ES5解决方案
var resultDataObject={
测试一:12,
测试二:6,,
测试三:4,
测试四:2
};
变量下降排序=函数(a,b){
返回resultDataObject[b]-resultDataObject[a]
};
var sortedResultKeys=Object.key(resultDataObject).sort(下降排序);
var resultWithRank=sortedResultKeys.map(函数(k,i){
返回{
标题:k,
分数:resultDataObject[k],
排名:i+1
};
})
console.log(resultWithRank)
ES5解决方案
var resultDataObject={
测试一:12,
测试二:6,,
测试三:4,
测试四:2
};
变量下降排序=函数(a,b){
返回resultDataObject[b]-resultDataObject[a]
};
var sortedResultKeys=Object.key(resultDataObject).sort(下降排序);
var resultWithRank=sortedResultKeys.map(函数(k,i){
返回{
标题:k,
分数:resultDataObject[k],
排名:i+1
};
})
console.log(resultwistrank)