4

一 sort排序
二 set和filter数组去重

一 sort排序

首先,有一个数组[{a:1,b:2},{a:2,b:1},{a:1,b:1}],我们需要按对其进行排序,排序规则是先比较a,在比较b,升序。(先以a的值进行升序,在a相等的情况下才比较b的大小,升序)
规定使用sort来排序

我们先看下sort的用法

clipboard.png

注意sort是直接对原数组操作

下面我们来实现:

var array = [{a:1,b:2},{a:2,b:1},{a:1,b:1}]
array.sort((o,p)=>{
   if(o.a<p.a){
      return -1
   }else if(o.a==p.a){
       if(o.b<p.b){
          return -1 
       }else if(o.b==p.b){
          return 0
       }else{
          return 1
       }
   }else{
      return 1
   }
})

返回结果:

clipboard.png

用sort排序还是很方便的

二 set和filter数组去重

set数组去重

主要利用ES6新增的 SetArray.from方法或者或者 扩展运算符(...)

先来看下SetArray.from方法

clipboard.png

clipboard.png

扩展运算符就不说了

上代码实践下

clipboard.png

用扩展运算符代码会简洁很多


filter数组去重

主要利用ES6 filter方法 和 indexOf方法(返回某个指定的字符串值在字符串中首次出现的位置)

先来看下filter方法

clipboard.png

注意哦,filter不会改变原数组

实践下:

clipboard.png

以上便是数组去重的几种新方式,都蛮简洁的


未完待续
by 潘小闲

同步github


潘小闲
146 声望9 粉丝

清教徒 驴友