按等级排序数组[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我想循环遍历同一级别的每个用户。

我如何使用以下数组执行此操作,以便我可以通过执行array[rankId].forEach来循环查看具有相同等级的所有人。

数组(对象)

var array = [
    {
    user: '1xJs8A',
    rank: 1
  },
  {
    user: '1xJs8B',
    rank: 1
    },
  {
    user: '1xJs8C',
    rank: 2
    },
];

编辑:我希望能够循环遍历排名,所以我需要某种数组,如下所示,

rankId:[
 { .. user data .. ] 
]
javascript arrays node.js object
2个回答
0
投票

这是一个简单的方法。注意for ... in ...for ... of ...的不同用法。

var array = [{
    user: '1xJs8A',
    rank: 1
  },
  {
    user: '1xJs8B',
    rank: 1
  },
  {
    user: '1xJs8C',
    rank: 2
  }];

var usersByRank = [];
for (item of array) {
  usersByRank[item.rank] = usersByRank[item.rank] || [];
  usersByRank[item.rank].push(item);
}

for (rank in usersByRank) {
  console.log(usersByRank[rank].length +
    " users with rank " + rank);
    
  for (item of usersByRank[rank]) {
    console.log(" > user " + item.user);
  }
}

-2
投票
<script>
    window.onload=function(){
      var array = [
    {
    user: '1xJs8A',
    rank: 1
  },
  {
    user: '1xJs8B',
    rank: 1
    },
  {
    user: '1xJs8C',
    rank: 2
    },
];


for(var i=0; i<array.length;i++){
    if(array[i].rank==1){
        alert(array[i].user);
    }

}






        }

</script>
© www.soinside.com 2019 - 2024. All rights reserved.