我想将等级设置为数组值吗?

时间:2019-09-20 23:54:42

标签: javascript

我试图从array创建新的array对象,根据其value设置等级。如果值相同,则设置相同的等级,如果下一个值不同,则跳过相同的等级长度来设置等级。

预期结果是

  

[     {       “等级”:1       “数据”:45     },     {       “等级”:2       “数据”:33     },     {       “等级”:3,       “数据”:8     },     {       “等级”:4       “数据”:5     },     {       “等级”:4       “数据”:5     },     {       “等级”:6       “数据”:2     }   ]

var data = [8,5,2,33,5,45];

var rankList = [];

var uniqueList = [];

var rank = 0;
var sameRank = 0;

data.sort(function(a,b) { return b - a; });

for(var i in data) {
   if(uniqueList.includes(data[i])) {
      rank++;
      rankList.push({rank: sameRank, data: data[i]});
      continue;
   }
   rank++;
   sameRank++;
   rankList.push({rank: rank, data: data[i]});
}


console.log(rankList);

1 个答案:

答案 0 :(得分:2)

对数组进行排序后,请使用class CommentCreate(LoginRequiredMixin,CreateView): def get_success_url(self): return self.object.post.get_absolute_url() 创建另一个对象数组,并跟踪最后使用的.maprank。如果新数据相同,则使用相同的等级(上一次迭代获得的等级)-否则,使用当前迭代索引加1:

data