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]))

 

 

 

 

 

 

 

 

 

 

 

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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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