• js的数组方法整理


    这几天发现自己对js的数组方法有点生疏,这里整理一下,方便后期查看

    首先看一下汇总:

    1.join()

    2.push()

    3.pop()

    4.unshift()

    5.shift()

    6.reverse()

    7.sort()

    8.concat()

    9.slice()

    10.splice()

    下面是ES5新增

    1.indexOf()

    2.forEach()

    3.map()

    4.filter()

    5.every()

    6.some()

    接下来我们来看详解:

    1.join():将数组转换成对应的字符串。参数就是连接符。(不改变原数组)

    var arr=["a", "b", "c", "d", "e", "f", "g"];
    console.log(arr.join('#'));  //a#b#c#d#e#f#g
    console.log(arr.join(''));   //abcdefg
    console.log(arr.join(','));  //a,b,c,d,e,f,g
    console.log(arr);   //["a", "b", "c", "d", "e", "f", "g"]

    2.push():可以接受任意数量的参数,把他们逐个添加到数组末尾,返回的是数组修改后的长度,改变原数组

    var arr=["a","b","c","d"];
    console.log(arr.push("e","f","g"));  //7
    console.log(arr);  //["a", "b", "c", "d", "e", "f", "g"]

    3.pop():从数组末尾移除最后一项,返回的是移除的那一项

    var arr=["a","b","c","d"];
    console.log(arr.pop());  //d
    console.log(arr);  //["a", "b", "c"]

    4.unshift():接受任意数量的参数,把他们逐个添加到数组前面,并返回修改后数组的长度

    var arr=["a","b","c","d"];
    console.log(arr.push("e","f","g"));  //7
    console.log(arr);  //["e", "f", "g","a", "b", "c", "d" ]

    5.shift():移除数组中的第一项,返回的是移除的哪一项

    var arr=["a","b","c","d"];
    console.log(arr.shift());  //a
    console.log(arr);  //["b", "c", "d"]

    6.reverse():反转数组项的顺序,会改变原数组

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

    7.sort():按字母表升序排列数组项,会改变原数组,如果要按照其他方式而非字母表顺序进行数组排列,必须给sort方法传递一个比较函数

    var arr=["c","b","a","d"];
    console.log(arr.sort());  //["a", "b", "c", "d"]
    console.log(arr);  //["a", "b", "c", "d"]
    
    var arr1= ["orange", "pear", "banana", "apple"];
    console.log(arr1);  //["orange", "pear", "banana", "apple"]
    console.log(arr1.sort());  //["apple", "banana", "orange", "pear"]
    
    var arr2 = [9,5,1,7,3,4,2,8,6];
    console.log(arr1.sort());  //[1, 2, 3, 4, 5, 6, 7, 8, 9]
    var arr3 = [39,95,100,7,3,4,2,800,6];
    console.log(arr1.sort());  //[100, 2, 3, 39, 4, 6, 7, 800, 95]
    
    var arr4 = [39,95,100,7,3,4,2,800,6];
    console.log(arr4);  //[39,95,100,7,3,4,2,800,6]
    arr1.sort(function(a,b){
        return a-b;
     });
    console.log(arr4);  //[2, 3, 4, 6, 7, 39, 95, 100, 800]

    8.concat():可以基于当前数组中的所有项创建一个新数组,参数可以是任意个数组项或数组,不会改变原数组

    var arr=['a','b','c'];
    var arrnum=[1,2,3];
    var newarr=arr.concat();  //浅拷贝
    console.log(newarr);  //["a", "b", "c"]
    var newarr2=arr.concat("d",arrnum);  //参数可以是数组项或数组
    console.log(newarr2);  //["a", "b", "c", "d", 1, 2, 3]

    9.slice():基于的当前数组中的一项或多个项创建一个新数组。可以接受一或两个参数,即要返回的起始和结束索引位置,包括开始位置,不包括结束位置。

    var arr=["a", "b", "c", "d", "e", "f", "g"];
    console.log(arr.slice());//全部截取
    console.log(arr.slice(3));//3 开始位置--->后面的所有项。
    console.log(arr.slice(3,6));//["d", "e", "f"]开始位置3---结束位置6,不包括结束位置
    console.log(arr.slice(1,-2));//["b", "c", "d", "e"]负数,从后往前数-1开始(截取顺序一定是从前往后)
    console.log(arr.slice(1,5));//["b", "c", "d", "e"]
    console.log(arr.slice(-6,-2));//["b", "c", "d", "e"]
    console.log(arr.slice(-250,-15));//[]
    console.log(arr);//["a", "b", "c", "d", "e", "f", "g"]

    10.splice():对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组(删除的项)

    //删除
    var arr=["a", "b", "c", "d", "e", "f", "g"];
    console.log(arr.splice(2,4));  //["c", "d", "e", "f"] 
    //参1:开始索引位置  参2:删除的长度  参3开始....代表添加的数组项
    console.log(arr);  //["a","b","g"]
    
    //插入
    var arr=["a", "b", "c", "d", "e", "f", "g"];
    console.log(arr.splice(3,0,'hehe','xixi'));   //[]
    console.log(arr);    //["a", "b", "c", "hehe", "xixi", "d", "e", "f", "g"]
    
    //替换
    var arr=["a", "b", "c", "d", "e", "f", "g"];
    console.log(arr.splice(3,2,'hehe'));   //["d", "e"]
    console.log(arr);  //["a", "b", "c", "hehe", "f", "g"]

    接下里我们来看ES5新增的方法

    1.indexOf():接收两个参数,分别为要查找的字符串值和起始查找的索引(可选的),若能找到返回字符串首次出现的位置的索引,否则返回-1

    var arr=["a","b","c","d"];
    console.log(arr.indexOf("c"));  //2
    console.log(arr.indexOf("d",2));  //3
    console.log(arr.indexOf("e"));  //-1

    2.forEach():对数组进行遍历循环,对数组的每一个元素只执行一次提供的函数。该方法没有返回值,参数都是function类型,默认有传参,参数分别为:遍历的数组内容,对应的数组索引,数组本身

    var arr=["a","b","c","d"];
    arr.forEach(function(x,index,a){
         console.log(x,index,a===arr)
    })
    //输出:
    //a 0 true
    //b 1 true
    //c 2 true
    //d 3 true

    3.map():返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值,该方法会按照原始数组元素顺序依次处理函数,不会对空数组进行检测,不会改变原数组

    var arr=[1,2,3,4];
    var newarr=arr.map(function(item){
          return item*2
    });
    console.log(arr);  //[1, 2, 3, 4]
    console.log(newarr);  //[2, 4, 6, 8]

     4.filter():对数组中的每一项运行给定的函数,对数组进行过滤,返回满足过滤条件的函数

    var arr=[1,2,3,4];
    var newarr=arr.filter(function(item,index){
          return item%2===0&&item>3
    });
    console.log(arr);  //[1, 2, 3, 4]
    console.log(newarr);  //[4]

    5.every():判断数组中的每一项是否满足条件,只有所有的项满足条件,才会返回true,否则放回false

    var arr=[1,2,3,4];
    var newarr1=arr.every(function(item){
         return item<5;
    });
    var newarr2=arr.every(function(item){
         return item>5;
    });
    console.log(newarr1);  //true
    console.log(newarr2);  //false

    6.some():判断数组中是否有满足条件的项,只要有一项满足条件,就会返回true

    var arr=[1,2,3,4];
    var newarr1=arr.some(function(item){
        return item===1;
    });
    var newarr2=arr.some(function(item){
         return item===5;
    });
    console.log(newarr1);  //true
    console.log(newarr2);  //false

    文章部分参考:https://www.cnblogs.com/zyfeng/p/10541133.html

  • 相关阅读:
    论架构在嵌软设计中的重要性
    妙用typeof关键字
    说说动态内存分配
    3个实用shell脚本,建议收藏!
    GNU C语法扩展(7)
    Ubunt_配置_nfs(文件挂载)
    Ubunt_配置_samba(文件共享)
    Ubunt_配置_tftp(文件传输)
    Ubunt_配置_net
    驱动_Platform平台总线
  • 原文地址:https://www.cnblogs.com/lmm1010/p/13748465.html
Copyright © 2020-2023  润新知