Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

最近碰到的sort排序 以及 set和filter数组去重 #4

Open
ElonXun opened this issue Nov 16, 2017 · 0 comments
Open

最近碰到的sort排序 以及 set和filter数组去重 #4

ElonXun opened this issue Nov 16, 2017 · 0 comments
Assignees

Comments

@ElonXun
Copy link
Owner

ElonXun commented Nov 16, 2017

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

一 sort排序

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

我们先看下sort的用法

sort

注意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
   }
})

返回结果:

sort

用sort排序还是很方便的

二 set和filter数组去重

set数组去重

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

先来看下SetArray.from方法

3

4

�扩展运算符就不说了

上代码实践下

5

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


filter数组去重

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

先来看下filter方法

6

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

实践下:

7

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

未完待续
by 潘小闲

同步segmentfault

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant