javascript 数组排序,找到相同元素[通俗易懂]

javascript 数组排序,找到相同元素[通俗易懂]小白前端一个,公司项目,里面有一个数组增加,删除,去重,排序,找到相同元素个数等等…这是冒泡排序vararr=[10,20,1,2];vart;for(vari=0;i<arr.length;i++){for(j=i+1;j<arr.length;j++){if(arr[i]>arr[j]){t…

大家好,又见面了,我是你们的朋友全栈君。

小白前端一个,公司项目,里面有一个数组增加,删除,去重,排序,找到相同元素个数等等…

这是冒泡排序
var arr = [10, 20, 1, 2];
var t;
for(var i=0;i<arr.length;i++){
    for(j=i+1;j<arr.length;j++){
        if(arr[i]>arr[j]){
            t=arr[i];
            arr[i]=arr[j];
            arr[j]=t;
        }
    }
}
console.log(arr);  //[1, 2, 10, 20]

for循环运行的次序是,外层先走一步,然后内层走完,然后外层再走一步,内层再走一圈。

具体来说,
i=0: j依次遍历0,1,2,3,4,5,6,7,在交换

接下来i=1; j依次遍历1,2,3,4,5,6,7
结果是剩下数中最小的

然后i=2;j遍历2,3,4,5,6,7

i=3;j走过3,4,5,6,7
.
.
.
最后的结果就是数组被排序了。



function bubbleSort(arr) {
    var len = arr.length;
    for (var i = 0; i < len; i++) {
        for (var j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {      
                var temp = arr[j+1];        
                arr[j+1] = arr[j];
                arr[j] = temp;
            }
        }
    }
    return arr;
}
console.log(bubbleSort([10, 20, 1, 2]))
这个方法就是排序了,从小到大,对一个叫做arr的数组排序
function sortId(a,b){  
        return a.id-b.id  
   }
arr.sort(sortId);

此方法
for (let i = 0; i < arr.length;) {
        let count = 0;
        for (let j = i; j < arr.length; j++) {
          if (arr[i].id === arr[j].id) {
            count++;
          }
        }
        newarr.push({
          date: arr[i],
          count: count
        })
        i+=count;
      }
      console.log(newarr);

//这里就是返回一个newarr的数组,里面有排序好的数组,还有相同元素的个数
快速排序
function quickSort(arr){
  if(arr.length<=1){
    return arr;
  }
   var pivotIndex = Math.floor(arr.length / 2) ;
   var pivot = arr.splice(pivotIndex, 1)[0];
   var left = [];
   var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));
}
console.log(quickSort([95]))

 

 

 

 

 

 

 

 

 

 

 

以上就是一个简单的数组应用,打完收工

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133463.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html怎么添加左侧点虚线,css虚线样式,怎么在css里添加虚线

    html怎么添加左侧点虚线,css虚线样式,怎么在css里添加虚线css 虚线样式 怎么在 css 里添加虚线内容导读 控制 div 线框的是 border 我们可以具体设置四条边的线框是否显示 也可以去设置虚线框的颜色和粗细 线框的设置可以让 div 的块状更加明显 至于是用虚线还是实线 大家可以根据具体情况而定 不知道怎么在 css 里添加虚线的朋友 可以拿本文的代码去看看效果 自己再去修改修改 体会下变化 进而更审核的掌握 css 虚线样式 本文给大家介绍的是 css 虚线样式 给大

    2025年8月29日
    3
  • 使用block实现两个页面之间的传统价值观

    使用block实现两个页面之间的传统价值观

    2022年1月6日
    59
  • 一些JavaScript题目

    在JavaScript中,运行下面代码,sum的值是()。varsum=0;for(i=1;i<10;i++){if(i%5==0)break;sum=sum+i;}A.40B.50C.

    2021年12月21日
    39
  • windows无exe

    windows无exewindows无exe加载脚本方式恶意脚本加载powershellmshta.exeCScript.exe&WScript.exeWindows原生工具加载regsvr32.exedllsctcertutil.exewinrm.vbsmsiexec.exewmic.exepubprn.vbs参考加载脚本方式利用Windows自带的解析器:PowerShell、VBScript、批处理文件和JavaScript,对应的应用程序分别为powershell.exe、cscript.exe、cmd.ex

    2022年7月15日
    34
  • 关键字declare_protected关键字

    关键字declare_protected关键字在写函数模板时,存在一个问题是不能总能知道应该在声明中使用那种类型。例如:templatevoidft(T1x,T2y){…?type?xpy=x+y;…}在以上的例子中,因为函数模板的存在,我们并不能知道变量xpy的类型。这时我们可以使用C++11新增的关键字decltypeintx;

    2025年10月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号