问题描述:
筛选出来的排名可能是1,5,5,8,隔开的数字,前端需要把筛选出的数据展示为1、2、2、3…,相同的数字排名相等
解决方案:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>CSS三角形</title>
<style>
.box {
width: 100px;
height: 100px;
border: 10px solid #666;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
<script>
let checkedArr = [];
let totalArr = [
{ rank: 5 },
{ rank: 7 },
{ rank: 7 },
{ rank: 8 },
{ rank: 9 },
{ rank: 9 },
{ rank: 10 },
{ rank: 11 },
];
let numArr = [
{ rank: 5, num: 1 },
{ rank: 7, num: 2 },
{ rank: 7, num: 2 },
{ rank: 8, num: 3 },
{ rank: 9, num: 4 },
{ rank: 9, num: 4 },
{ rank: 10, num: 5 },
{ rank: 11, num: 6 },
];
let num = 1;
let compareData = totalArr[0].rank;
totalArr.forEach((item, index) => {
if (totalArr.length == 1) {
item.saleRank = num;
return;
}
if (index === totalArr.length - 2) {
if (compareData === totalArr[index + 1].rank) {
item.saleRank = num;
totalArr[index + 1].saleRank = num;
} else {
item.saleRank = num;
num++;
totalArr[index + 1].saleRank = num;
console.log(num);
return;
}
}
if (index < totalArr.length - 2) {
if (compareData === totalArr[index + 1].rank) {
item.saleRank = num;
} else {
item.saleRank = num;
num++;
compareData = totalArr[index + 1].rank;
}
}
});
console.log(totalArr);
</script>
</html>