• 数组常用方法总结


    1.基本:

    push/pop/shift/unshift

    push向末尾添加一个或多个值,将要传的值作为参数传递,eg:arr.push(2,3)

    pop向末尾移除一个值,

    shift删除首部的一个值,

    unshift向首部添加一个或多个值(传参数)

    以上方法都是直接修改原数组,添加的方法返回值为新数组长度,删除的方法返回值为删除的元素

    2:进阶

    splice:

    直接修改原数组,可以传三个参数,可实现删除增加替换的功能

    slice:

    不影响原数组,传两个参数,开始位置索引,结束位置索引,截取返回一个新数组(不包含介绍索引元素),也可传一个参数,传正数就从该索引往后截取全部,传负数截取后面元素(-1截取一个-2截取2个),传一正一负截取开始位置到去除负数所指的元素之前

    split:

    不影响原字符串,将字符串截取为数组返回,传参数可制定以某字符截取,截取后每个元素为字符串形式

    concat:

    不影响原数组,合并数组,返回合并后的新数组

    join:

    不影响原数组,将数组转为字符串返回,默认以‘,’隔开,可以传参制定隔开符

    reverse:

    反转数组,直接修改原数组,返回值也是反转后的数组

    sort:

    排序,直接修改原数组,可以传个比较函数(a,b)=>a-b升序,b-a降序

    indexOf/lastindexof和index相反

    接受的参数为数值

    返回数组中第一个与参数相等的元素的索引,没有满足条件的返回-1

     3.高级:

    find:

    找出满足条件的第一个元素,并返回,没找到返回undefined

    findIndex:

    var arr=[3,4,5,6,7,8,9]
    var res=arr.findIndex(function (item,index) {
    return item==4
    })
    console.log(res);//1
    进行循环遍历返回第一个满足条件的元素的索引
    以上两个方法(第一个参数为callback)都可以接受第二个参数,用来绑定回调函数的this对象。
    function f(v){
      return v > this.age;
    }
    let person = {name: 'John', age: 20};
    [10, 12, 26, 15].find(f, person);    // 26
    
    
    includes:
    方法返回一个布尔值,表示某个数组是否包含给定的值可以传两个参数,第二个可传可不传,第二个参数表示开始搜索的索引

    map
    不影响原数组,对元素进行加工后返回到一个新数组中
    var arr=[7,6,5,4,2,4,9]
        var a=arr.map((item,index)=>{
          return item=item+5
        })
    console.log(arr);[ 7, 6, 5, 4, 2, 4, 9 ]
    console.log(a);[ 12, 11, 10, 9, 7, 9, 14 ]

    reduce:

    不影响原数组,对元素进行累加

     

    filter:

    不影响原数组,对数组进行过滤,返回满足条件的元素的新数组

    some/every:

    some:传入一个回调,如果有任意一个元素满足条件则返回true,否则false

    every:必须每个元素都满足条件才返回true

    遍历数组的方法:entries()values()keys()

    这三个方法都是返回一个遍历器对象,可用for...of循环遍历,唯一区别:keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历

    for(let item of ['a','b'].keys()){
        consloe.log(item);
        //0
        //1
    }
    for(let item of ['a','b'].values()){
        consloe.log(item);
        //'a'
        //'b'
    }
    let arr4 = [0,1];
    for(let item of arr4.entries()){
        console.log(item);  
        //  [0, 0]
        //  [1, 1]
    }
    for(let [index,item] of arr4.entries()){
        console.log(index+':'+item);
        //0:0
        //1:1
    }

    Array.from

    将类数组对象(即有length属性的对象)和可遍历对象转为真正的数组。
    比如,使用·Array.from()·方法,可以轻松将·JSON·数组格式转为数组。

    let arrayLike = {
        '0': 'a',
        '1': 'b',
        '2': 'c',
        length: 3
    };
    
    let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']

    Array.of

    Array.of()方法是将一组值转变为数组

    let arr0 = Array.of(1,2,33,5);
    console.log(arr0);//[1,2,33,5]
    
    let arr1 = Array.of('你好','hello');
    console.log(arr1);//["你好", "hello"]


  • 相关阅读:
    微信支付-公众号支付,统一下单,调起微信支付,回调验证
    注册时 手机验证码的js验证和后台验证,调用阿里大于短信验证平台,手机号注册
    使用有模板的page类;thinkphp 分页使用的css
    thinkphp分页类使用,以及修改,添加了每页第一和最后的序号
    富文本编辑器Uediet使用
    Redis集群环境搭建
    Redis单机版安装
    Linux的shell编程
    Notepad++的列编辑功能
    SprngCloud微服务框架搭建(一)
  • 原文地址:https://www.cnblogs.com/baixiaoxiao/p/11156919.html
Copyright © 2020-2023  润新知