How to sort an array efficiently

后端 未结 4 461
鱼传尺愫
鱼传尺愫 2021-01-28 01:46

I\'m trying to sort an array [3,3,2,1,3,2,2,2,1] to [1,1,3,3,3,2,2,2,2].

I\'m trying to handle it using object, using the number as key, and th

4条回答
  •  忘了有多久
    2021-01-28 02:40

    You can do this

    const sortNums = (arr) => {
        const result = {}
    
        for (let i = 0; i < arr.length; i++) {
          const num = result[arr[i]] || 0;
          result[arr[i]] = num + 1;
        }
    
        const a = [];
        for(let i = 0; i <= 9; i++) {
            if(result[i]) {
                a.push(...Array.from({length: result[i]}, x => i));
            }
        }
        return a;
      }
    

提交回复
热议问题