JS数组常用方法总结

294 阅读4分钟

改变原数组的方法:

一.shift:删除数组的第一个元素

  1. 语法:array.shift()
  2. 返回值:返回删除的那个数据
        let arr = ['pink', 'blue', 'yellow', 'green'];
        console.log(arr.shift());   //打印pink
        console.log(arr);          //打印['blue', 'yellow', 'green']

二.unshift:在数组开头添加元素,并返回新的长度

  1. 语法:array.unshift(item1,item2, ..., itemX)
  2. 返回值:返回原数组的长度
        let arr = ['pink', 'blue', 'yellow', 'green'];
        console.log(arr.unshift('orange'));   //打印5
        console.log(arr);                    
          //打印  ['orange', 'pink', 'blue', 'yellow', 'green']

三.pop:删除数组的最后一个元素

  1. 语法:array.pop()
  2. 返回值:返回删除的那个数据
        let arr = ['pink', 'blue', 'yellow', 'green'];
        console.log(arr.pop());    //打印green
        console.log(arr);         //打印 ['pink', 'blue', 'yellow']

四.push:在数组的末尾添加元素,并返回新的长度

  1. 语法:array.push(item1,item2, ..., itemX)
  2. 返回值:返回原数组的长度
        let arr = ['pink', 'blue', 'yellow', 'green'];
        console.log(arr.push('orange'));  //打印5
        console.log(arr);
        //打印  ['pink', 'blue', 'yellow', 'green','orange']

五.reverse:翻转数组

  1. 语法:array.reverse()
  2. 返回值:返回翻转后的数组
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.reverse()); 
        console.log(arr);
        //以上都打印 ['green', 'yellow', 'green', 'pink']

六.sort:数组排序

  1. 语法:array.sort()
  2. 返回值:返回排序后的数组
  3. 注意:它只会按首字母排序。若要排序数字,则要写成
    (升序)array.sort(function(a,b){return a-b});若要将字母倒序排序,排序后再翻转数组即可
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.sort());
        console.log(arr);
        //以上都打印['green', 'green', 'pink', 'yellow']

七.splice:添加或删除数组中的元素

  1. 语法:array.splice(第几个开始,要删除的个数)
    注意:包括开始索引的元素
  2. 返回值:返回删除的数组
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.splice(1, 2)); //打印 ['green', 'yellow']
        console.log(arr);  打印['pink', 'green']

八.copyWithin:从数组的指定位置拷贝元素到数组的另一个指定位置中

  1. 语法:array.copyWithin(target, start, end)
    target:必选,复制到指定目标索引位置
    start:可选,元素复制的起始位置
    end:可选,停止复制的索引位置 (默认为 array.length)。如果为负值,表示倒数
  2. 返回值:返回改变后的数组
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.copyWithin(0, 1, 2));
        console.log(arr);
        //以上都打印 ['green', 'green', 'yellow', 'green']
        //原来索引为0的元素被后边拷贝的元素覆盖

九.fill:将一个固定值替换数组的元素

  1. 语法:array.fill(value, start, end)
    value:必选,替换的元素
    start:可选,元素替换的起始位置
    end:可选,替换终止的位置 (默认为 array.length)
  2. 返回值:返回改变后的数组
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.fill('orange', 1, 2));
        console.log(arr);
        //以上都打印['pink', 'orange', 'yellow', 'green']

不改变原数组的方法:

一.join:通过分隔符将数组转换为字符串

  1. 语法:array.join(separator)
    separator:指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符
  2. 返回值:返回拼接后的字符串
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.join());  //打印pink,green,yellow,green
        console.log(arr.join(' ')); //打印pink green yellow green
        console.log(arr); //打印原数组

二.slice:从数组中截取选定的元素(可以用作字符串)

  1. 语法:array.slice(start,end)
    start:开始截取的元素索引(包括该元素)
    end:截取结束的元素索引(不包括该元素)
  2. 返回值:返回截取的数组
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.slice(1, 2)); //打印['green']

三.concat:用于连接两个或多个数组(可以用作字符串)

  1. 语法:array.concat(arrayarray, ..., arrayX)
  2. 返回值:返回连接后的新数组
     let arr = ['pink', 'green', 'yellow', 'green'];
     let arr1 = ['Jin', 'Nick']
     console.log(arr.concat(arr1));
     //打印['pink', 'green', 'yellow', 'green', 'Jin', 'Nick']

四.indexOf:返回某个指定的元素在数组中首次出现的位置,如果没有找到匹配的元素则返回 -1(字符串也可以使用)

  1. 语法:array.indexOf(searchvalue,start)
    searchvalue:是要查找的元素
    start:起始的位置
  2. 返回值:若找到元素,返回该元素的索引号;反之,返回-1
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.indexOf('orange'));   //打印-1
        console.log(arr.indexOf('green'));    //打印1

五.lastindexOf:从数组末尾开始,返回某个指定的元素在数组中首次出现的位置,如果没有找到匹配的元素则返回 -1(字符串也可以使用)

  1. 语法:array.lastIndexOf(searchvalue,start)
    searchvalue:是要查找的元素
    start:起始的位置
  2. 返回值:若找到元素,返回该元素的索引号;反之,返回-1
        let arr = ['pink', 'green', 'yellow', 'green'];
        console.log(arr.lastIndexOf('orange'));   //打印-1
        console.log(arr.lastIndexOf('green'));    //打印3

六.filter:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

  1. 语法:array.filter(function(currentValue,index,arr), thisValue)
  2. 返回值:返回过滤后的新数组
        let arr = [50, 100, 200, 300];
        let arr1 = arr.filter(function (arr2) {
            return arr2 >= 100
        })
        console.log(arr1); //打印 [100, 200, 300]
        console.log(arr); //打印原数组

七.还有一些方法map(),reduce(),forEach()一般用于遍历数组,很少用来改变数组,some(),every(),Math.max(...arr)返回数组的最大数字