码迷,mamicode.com
首页 > 编程语言 > 详细

记录下js几种常见的数组排序和去重的方法

时间:2019-12-04 13:06:56      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:style   随机数   ret   使用   ber   lin   cti   for   排序   

冒泡排序

var arr = [1, 9, 4, 50, 49, 6, 3, 2];
function test(){
  for (var i = 0; i < arr.length - 1; i++){
    for (var j = i + 1; j < arr.length; j++){
      var tempi = arr[i]; //获取第一个值,并与后一个值比较
      var tempj = arr[j];
      if (tempi > tempj){
        arr[i] = tempj;
        arr[j] = tempi;//如果前一个值比后一个值大,那么相互交换
      }
    }
  } 
  console.log(arr); //return arr;
}
test(arr);  //[1, 2, 3, 4, 6, 9, 49, 50]

 

简单粗暴的使用sort()方法进行升序、降序排列

var arr = [1, 9, 4, 50, 49, 6, 3, 2];
function test(arr) {
  if( arr.length < 1){
    return      //如果数组长度小于1,直接返回,没有比较的必要
  }
 return  arr.sort(sortNum)
};
function sortNum(a,b) {
    return a - b;   //倒序就是b-a
}
test(arr)  //[1, 2, 3, 4, 6, 9, 49, 50]

 

还可以利用sort 方法的返回值,做数组的随机排序

var arr = [1, 9, 4, 50, 49, 6, 3, 2];

function test(arr) {
    if(arr.length < 1) {
        return 
    }
    return arr.sort(randomSrot)
}
function randomSrot(a,b) {
    return Math.random() > 0.5 ? -1 : 1;
}
test(arr);  
//利用Math.random()方法可以返回0~1之间的随机数,然后和0.5比较,来决定返回值是1还是-1

 

数组去重的几种方法

1.最常使用的indexOf()
var arr = [1,1,1,12,12,13,13,8,8,9,7,5];
function test(arr) {
    var result = []; //用来存放新数组
    var len = arr.length;
    for(var i = 0; i < len; i++) {
        if(result.indexOf(arr[i])== -1) {   //如果新数组查询不到当前的数组成员,就把他添加进新数组
            result.push(arr[i])
        }
    }
    return result;
}
test(arr);//[1, 12, 13, 8, 9, 7, 5]

 


2.最简洁的方法,使用es6 的新数据类型set()
var arr = [1,1,12,12,13,13,8,8,9,7,5];
var arr2 = [...new Set(arr)];   //[1, 12, 13, 8, 9, 7, 5]

 

 

记录下js几种常见的数组排序和去重的方法

标签:style   随机数   ret   使用   ber   lin   cti   for   排序   

原文地址:https://www.cnblogs.com/plBlog/p/11982152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!