JS中数组排序和去重

JS中的数组排序和去重

数组排序方法

1.使用数组arr.reverse();

将原始数据倒置未实际排序

  let arr = [10,20,12,4,5,6,1,50,123];
  let result = arr.reverse();
  console.log(result); //=>输出结果[123, 50, 1, 6, 5, 4, 12, 20, 10]

2.使用arr.sort()排序

   let arr = [10,20,12,4,5,6,1,50,123];
          arr.sort(function(a,b){
              return a - b; //=>正序a-b,倒序b-a
          });
   console.log(arr); //=>[1, 4, 5, 6, 10, 12, 20, 50, 123]
   

3.冒泡排序

利用数据两两比较,数据小的靠前排列

        var arr = [10, 20, 12, 4, 5, 6, 1, 50, 123];
        var arrSorted = bubbleSort(arr);
        function bubbleSort(arr) {
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - 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(arr); //=>[1, 4, 5, 6, 10, 12, 20, 50, 123]

数组中的去重

1.利用双for去重

let arr = [1, 2, 3, 4, 5, 2, 34, 1, 3, 4, 34, '10', '10'];
            for (let i = 0; i < arr.length - 1; i++) {
                let item = arr[i];
                for (let j = i + 1; j < arr.length; j++) {
                    if (item === arr[j]) {                 
                        arr[j] = arr[arr.length - 1]; //用最后一项替换当前项
                         arr.length--; //将最后一项删掉
                         j--; //下一次还和这一项比较
                    }
                }
            }
  console.log(arr);//=>输出结果 [1, 2, 3, 4, 5, 34, '10']            

2.利用键值对去重

let arr = [1, 2, 3, 4, 5, 2, 34, 1, 3, 4, 34, '10', '10'];
let obj = {};
        for (let i = 0; i < arr.length; i++) {
            let item = arr[i];
            if (obj[item] !== undefined) {
                arr[i] = arr[arr.length - 1];
                arr.length--;
                i--;
                continue;
            }
            obj[item] = item;
        }
 console.log(arr);//=>输出结果 [1, 2, 3, 4, 5, 34, '10']

3.ES6中set数据结构去重

let arr = [1, 2, 3, 4, 5, 2, 34, 1, 3, 4, 34, '10', '10'];
arr = Array.from(new Set(arr));
console.log(arr); //=>输出结果 [1, 2, 3, 4, 5, 34, '10']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值