按key排序_JSMap对象排序
题⽬描述:有⼀个数组,它的长度为1000,⾥边存放的是1-100之间的整数,如何实现统计⾥边每个数字出现的次数及其将它们按出现次数的多到少排序
解题思路:将问题细分为两步,⼀是先实现每个数字出现次数的统计,⼆是对统计的次数进⾏排序。我⾸先想到的是map,map的key存数组的值,map的value存出现的次数,然后再对这个map的value进⾏排序
const arr = new Array(1000);
for(let i = 0; i < arr.length; i++) {
arr[i] = Math.floor(Math.random()*100 + 1);
}
const map = new Map();
for(let i = 0; i < arr.length; i++) {
if(map.has(arr[i])) {
const number = (arr[i]) + 1;
map.set(arr[i], number);
} else {
map.set(arr[i], 1);
}
js 二维数组}
// map转成数组是⼆维数组
const resultArr = Array.from(map);
// 所以是对⼆维数组的第⼆个值进⾏排序
resultArr.sort((a,b) => { return b[1] - a[1]});
console.log(resultArr);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论