• 数组处理方法总结


    今天遇到了一个操作数组的问题,概念有点模糊,整理一下。

    some()

    作用:判断是否有元素符合func条件,返回一个Boolean

    不会修改原数组

    
    const arr = [1,2,3,4]; arr.some((item)=>{return item>1})
    
    打印结果: true
    

    every()

    作用:判断每个元素是否符合func条件,返回一个Boolean

    不会修改原数组

    const arr1 = [1,2,3,4]; arr.every((item)=>{return item>3});
    打印结果:
    false
    

    filter()

    作用:返回一个符合func条件的元素数组(es6),可以用于删除某个元素,过滤符合或不符合元素。

    不会修改原数组

    let ages = [33,44,55,66,77]; ages.filter((item)=>{return item>18})
    打印结果[33, 44, 55, 66, 77]
    

    map()

    作用:返回一个新的array,数组元素由每一次调用函数产生结果组成,需要操作数组中的全部元素

    不会修改原数组

    
    const arr =[1,2,3,4,5,6]; arr.map((item)=>{return item*10})
    打印结果 [10, 20, 30, 40, 50, 60]
    

    forEach()

    作用:不返回数组,对数组中的数据进行操作

    改变原数组

    let arr = [5,6,7]
    arr.forEach((n,m,o)=>{
    console.log(n,m,o)
    
    co[m] +1 
    打印结果
    5 0 ['a','b','c'] //当前项 索引值 原数组
    6 1 ['a','b','c']
    7 2 ['a','b','c']
    
    
    })
    console.log(arr)
    [7,8,9]
    

    shift()

    作用:将第一个元素删除并且返回删除元素,空即为undefined

    修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.shift()
    console.log(a)         // a
    console.log(arr)       // ['b', 'c', 'd']
    

    unshift()

    作用:向数组开头添加元素,并新数组

    修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.unshift(0)
    console.log(a)        // 5 返回数组长度
    console.log(arr)      // [0, 'a', 'b', 'c', 'd']
    

    pop()

    作用:删除最后一个并返回删除的元素

    修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.pop()
    console.log(a)        // d
    console.log(arr)      // ['a', 'b', 'c']
    

    push()

    作用:向数组末尾添加元素,并返回新的长度

    修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.push('f')
    console.log(a)        // 5 返回数组长度
    console.log(arr)      // ['a', 'b', 'c', 'd', 'f']
    

    reverse()

    作用:颠倒数组顺序

    修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.reverse()
    console.log(a)        // ["d", "c", "b", "a"]
    console.log(arr)      // ["d", "c", "b", "a"]
    

    sort()

    作用:可以根据对象内的number值,或数组进行升序或者降序排序

    参考这个作者https://juejin.cn/post/6971367726401093668

    修改原数组

    slice()

    作用:删除,增加,替换数组元素,返回被删除数组,无删除则不返回

    修改原数组

    删除
    let arr = [1,2,3,4,5]
    	arr.splice(1,3)//从第一个元素后面,删除三个元素
    	alert(arr)//1,5
    增加
            arr.splice(1,0,'abc')//从第一个元素后面,添加abc元素
    	alert(arr)//1,abc,2,3,4,5
    替换
            arr.splice(2,2,'a','b')//从第二个元素后面,添加a,b元素
    	alert(arr) //1,2,a,b,5
    

    concat()

    作用:拼接数组,返回新数组

    不修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.concat(['e', 'f'])
    console.log(a)        // 新数组 ["a", "b", "c", "d", "e", "f"]
    console.log(arr)      // ["a", "b", "c", "d"] 不变
    

    join()

    作用:将数组中所有元素以参数作为分隔符放入一个字符

    不修改原数组

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.join('-')
    console.log(a)        // 字符串 a-b-c-d
    console.log(arr)      // ["a", "b", "c", "d"] 不变
    

    slice()

    作用:提取某个元素(按索引提取)

    不改变

    let arr = ['a', 'b', 'c', 'd']
    let a = arr.slice(1)
    console.log(a)        // ["b", "c", "d"]
    console.log(arr)      // ["a", "b", "c", "d"] 不变
    

    模糊匹配筛选数组(调用函数,第一个参数是数组、第二个是关键字、第三个是筛选的条件)

     // 模糊匹配放的方法
        query(list, keyWord, attribute = "label") {
          const reg = new RegExp(keyWord); // 创建正则表达式
          const arr = [];
          for (let i = 0; i < list.length; i++) {
            if (reg.test(list[i][attribute])) {
              arr.push(list[i]);
            }
          }
          return arr;
        },
    
  • 相关阅读:
    北理工计科小学期Qt聊天室:WeTalk——基于云服务器与QML前端的多人广域网即时聊天软件
    关于C++解决内存泄漏问题的心得
    SAP FI 系列 (032) - 应收票据的配置
    uniapp 自定义tabbar页面不刷新
    Adaptive AUTOSAR Diagnostic Manager模块介绍(一)
    3.3.2 【MySQL】客户端和服务器通信中的字符集
    webpack
    ubuntu 安装 mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz 报错
    【移远QuecPython】EC800M物联网开发板的内置GNSS定位的恶性BUG(目前没有完全的解决方案)
    SDUT—Python程序设计实验9(模块与包)
  • 原文地址:https://www.cnblogs.com/xuelinomen/p/16726047.html