zoukankan      html  css  js  c++  java
  • 详解es6新增数组方法简便了哪些操作

    在es6中,只需要一行代码就可以搞定!
    
    Array.from &&  newSet()
    
    let a = [1,2,2,3,3,4,5];
    let b = Array.from(new Set(a))
    console.log(b) // [1,2,3,4,5]
    是不是及其简单!其中 new Set()会把重复的数据过滤到,得到一个类数组的对象,Array.from()可以把类数组的对象转换为真正的数组对象,有兴趣的同学可以对这两个属性进行更加深入的了解。
    
    数组过滤
    
    在我们拿到后端数据的时候,可能会对数据进行一些筛选、过滤,传统的做法如下
    
    // 取出数组中name为kele的数组集合
    let a = [
      {
        name: 'kele',
        title: '可口可乐'
      },
      {
        name: 'kele',
        title: '芬达'
      },
      {
        name: 'wlg',
        title: '王老吉'
      }
    ]
    
    let b = [];
    
    for(let i = 0; i < a.length; i++){
      if( a[i].name === 'kele' ){
        b.push(a[i])
      }
    }
    
    console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]
    es6中的处理方法如下
    
    Array.filter(callback)
    
    let a = [
      {
        name: 'kele',
        title: '可口可乐'
      },
      {
        name: 'kele',
        title: '芬达'
      },
      {
        name: 'wlg',
        title: '王老吉'
      }
    ]
    
    let b = a.filter(item => item.name === 'kele');
    
    console.log(b) //[{name: 'kele', title: '可口可乐'},{name: 'kele', title: '芬达'}]
    同样的,Array.filter()让我们摆脱了for循环,代码看起来更加的清爽!
    
    Array.every(callback)
    
    这个方法主要是判断数组中所有的元素都符合条件时,返回true
    
    let a = [1,2,3,4,5];
    let b = a.every(item => item > 2);
    console.log(b) // false
    Array.some(callback)
    
    这个方法和上一个略有区别,这个方法主要判断数组中有一个元素符合条件,就返回true
    
    let a = [1,2,3,4,5];
    let b = a.some(item => item > 2);
    console.log(b) // true
    Array.find(callback)
    
    这个方法是返回数组中符合条件的第一个元素,否则就返回undefined
    
    let a = [1,2,3,4,5];
    let b = a.find(item => item > 2);
    console.log(b) // 3
    Array.findIndex(callback)
    
    这个方法是返回数组中符合条件的第一个元素的索引值,否则就返回-1
    
    let a = [1,2,3,4,5];
    let b = a.findIndex(item => item > 2);
    console.log(b) // 2 符合条件的为元素3 它的索引为2
    Array.includes(item, finIndex)
    
    这个方法是判断数组中是否包含有指定的值,包含就返回true,否则就是false,它接受两个参数,第一个为搜索的值(必填),第二个为搜索开始的位置(选填,默认从0开始)
    
    let a = [1,2,3,4,5];
    let b = a.includes(2);
    console.log(b) // true
    Array.map(callback)
    
    这个方法是返回一个根据你callback函数中的条件,返回一个全新的数组
    
    let a = [1,2,3,4,5];
    let b = a.map(item => item * 2);
    console.log(b) // [2,4,6,8,10]
    Array.reduce(callback)
    
    这个方法是根据callback中的条件对数组中的每个元素都进行类加的操作,返回一个全新的值,下面做两个不同的例子,便于理解
    
    /** 第一种 **/
    let a = [1,2,3];
    let b = a.reduce((i, j) => {
     return i + j;
    }, 0);
    console.log(b) // b
    /** 第二种 **/
    let a = [1,2,3];
    let b = a.reduce((i,j) => {
     i.push(j)
     return i
    },[0])
    console.log(b) // [0,1,2,3]
    ...扩展运算符
    
    这个可以很方便的帮我们实现合并两个数组
    
    let a = [1,2,3];
    let b = [4,5,6];
    let c = [...a,...b];
    console.log(c) // [1,2,3,4,5,6];
    

      

  • 相关阅读:
    Hbase实用技巧:全量+增量数据的迁移方法
    求职时这样回答问题你就输了!来自IT类面试官视角的深度解读
    云原生2.0时代:开启应用定义基础设施新时代
    让“物”能说会道,揭晓华为云IOT黑科技
    API生态的发展与机遇:从5000组数据看中国API生态与开发者现状
    如何实现微服务架构下的分布式事务?
    Win32可执行文件的开发过程 Win32汇编语言008
    鱼C加密程序 零基础入门学习Delphi10
    Win32可执行文件的开发过程 Win32汇编语言008
    使用MASM01 Win32汇编语言009
  • 原文地址:https://www.cnblogs.com/hjptopshow/p/12455090.html
Copyright © 2011-2022 走看看