数组排序问题

发布于 2022-09-13 00:53:06 字数 113 浏览 13 评论 0

有一个数组:
[2,3,1,3,4,2,35,63,35,2]

我想要的输出结果 :
[2,2,2,3,3,1,4,35,35,63]

请问该怎么写呀,谢谢了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

热鲨 2022-09-20 00:53:06

循环去做排序

function headSort(arr) {
  const len = arr.length
  let left = 0

  while (left < len) {
    for (let i = left + 1; i < len; i++) {
      if (arr[i] === arr[left]) {
        ++left
        arr.splice(left, 0, arr.splice(i, 1)[0])
      }
    }

    ++left
  }

  return arr
}

console.log(headSort([2, 3, 1, 3, 4, 2, 35, 63, 35, 2])) // [2, 2,  2,  3,  3, 1, 4, 35, 35, 63]
紫南 2022-09-20 00:53:06

好吧,看懂题目了
应该是判断每个然后获取相同的,放在当前位置。

[2,3,1,3,4,2,35,63,35,2].reduce((acc,cur,idx,arr)=>(acc.includes(cur) ? acc : (acc.concat(arr.filter(item=>item==cur)))),[])

结果
[2, 2, 2, 3, 3, 1, 4, 35, 35, 63]

呆头 2022-09-20 00:53:06

如果没理解错的话

arr.sort((a,b) => {
    if (a > b) return 1;
    if (a < b) return -1;
    if (a === b) return 0;
}); // => [1, 2, 2, 2, 3, 3, 4, 35, 35, 63]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文