gpt4 book ai didi

javascript - 我想根据属性键值对从对象返回的项目进行排序,然后为界面中的每个项目分配排名(1,2,3...等)

转载 作者:行者123 更新时间:2023-12-01 03:05:07 25 4
gpt4 key购买 nike

新手,有一个基本问题。这是我的目标:

{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,4,2 等。这对我来说是全新的,但我一直在尝试找出实现此目的的最佳方法,但到目前为止还没有找到任何我理解的内容。

这是我的代码。我觉得这应该很容易,但它非常令人沮丧!

 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};

// sort the array
var arr = Object.entries(obj);
arr.sort((a, b) => a[1] - b[1]);

// enumerate the array the index would be the rank
var arr_with_rank = arr.map((data, index) => [data[0], index+1]).reverse()

arr_with_rank.forEach(x => console.log(x[0] + ": " + x[1]));

关于javascript - 我想根据属性键值对从对象返回的项目进行排序,然后为界面中的每个项目分配排名(1,2,3...等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46248977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com