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)
上一篇 2022年5月1日 下午8:00
下一篇 2022年5月1日 下午8:20


相关推荐

  • vue父传子 子传父 prop定义方法

    vue父传子 子传父 prop定义方法简单的例子没有多余代码 父传子 template 父组件引用子组件 aaa 两种写法传递 num1 num2 div aaav bind father1 num1 father2 num2 aaav bind father1 num1 father2 num2 div template script import script

    2025年11月1日
    6
  • NoSQL详细介绍

    NoSQL详细介绍NoSQL 详细介绍 NoSQL 入门概述 NoSQL 的概念为什么要使用 NoSQL 数据库 1 对数据库高并发读写的需求 2 对海量数据的高效率存储和访问的需求 3 对数据库的高可扩展性和高可用性的需求 NoSQL 可以干什么 1 易扩展 2 大数据量高性能 3 多样灵活的数据模型 4 传统 RDBMSVSNOSQL 数据模型简介传统数据库模型和 NoSQL 数据模型对比 1 传统模型 ER 图 2 NoSQL 聚合模型例如 Bson 3 总结四种聚合模型 1 KV 键值 2 bson3 列族 4 图形 NoSQL 数据库四大分类及区别四大分类 1

    2026年3月20日
    2
  • windows下搭建tracker服务器

    windows下搭建tracker服务器RT,需要下载工具下载,解压,得到一个BitCometTracker_0.5[做服务器tracker]的文件夹,打开“BitCometTracker_0.5”文件夹,双击运行“BitCometTracker”打开软件之后,状态是停止的的状态,需要点击“run”这样就行了,如果需要修改配置端口,需要点击“config”架设好后,您的tracker服务器…

    2022年6月16日
    85
  • 一文详解MOS管驱动电路的核心设计「建议收藏」

    一文详解MOS管驱动电路的核心设计「建议收藏」MOS管电子产品生产中不可或缺的重要保护器件,在手机、笔记本电脑、蓝牙耳机等都有MOS管的身影,可以这样说,有便携式电子产品的地方一定有MOS管的存在,究竟为何MOS管能在竞争激烈的电子行业中脱颖而出,我觉的最主要的原因莫过于MOS管绝佳的性能,如简化驱动电路、自适应能力强、抗干扰能力强等性能使得MOS管崛起的速度快,今天我们要说的是MOS管在驱动电路中的核心设计,为何能让MOS管在竞争如此激烈的…

    2022年6月19日
    33
  • 基于stm32和ov7725的智能循迹车

    基于stm32和ov7725的智能循迹车基于stm32f103zet6的智能循迹车。1.L298nIN1IN2控制一个轮子,IN3IN4控制另外一个。这里使用的是直流电机,控制如下:为了使用pwm进行调速,一定要记得用跳帽使调速度端为高电平。这样,输入不同占空比的pwm波就可以实现调速了。2.连接方式连接时一定要注意的一点就是一定要保证l298n与单片机共地,否则会出现控制端有输入但输出端无输出导致车不移动的…

    2026年2月20日
    4
  • 吉林省组建具身智能机器人产业创新联合体

    吉林省组建具身智能机器人产业创新联合体

    2026年3月19日
    3

发表回复

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

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