常用的数组方法

188 阅读4分钟

1、添加

array.push(值)---在数组的最后添加一个或多个元素,直接改变原数组,返回值添加后数组的长度

        let arr = [1, 2, 3]
        let num = arr.push(6)
        console.log(arr);  //[1, 2, 3, 6]
        console.log(num, typeof num);  //4 'number'

array.unshift(值)---在数组的最前面插入一个或多个值,直接改变原数组,返回值添加后数组的长度

        let arr = [1, 2, 3]
        let num = arr.unshift(6)
        console.log(arr);  //[6, 1, 2, 3]
        console.log(num, typeof num);  //4 'number'

2、删除

array.pop()---删除数组中最后一个元素,改变原数组,返回值:返回删除的那个元素

        let arr = [1, 2, 3]
        let num = arr.pop()
        console.log(arr);  //[1, 2]
        console.log(num);  //3 

array.shift()---删除数组中第一个元素,改变原数组,返回值返回删除的那个元素

        let arr = [1, 2, 3]
        let num = arr.shift()
        console.log(arr);  //[2,3]
        console.log(num);  //1 

3、splice()

语法1: array.splice(索引,数量)---只删除

从指定的索引位置开始,删除任意的项数,此方法会改变原数组,返回值 将被删除的元素以数组的形式返回,删除项数为0,则返回一个空的数组

        let arr = [1, 2, 3, 4, 5]
        let num = arr.splice(2, 2)
        console.log(arr);  //[1, 2, 5]
        console.log(num);  //[3,4]

语法2: array.splice(索引,0,要添加的值1,值1...)--只添加

从指定的索引位置开始,添加任意个值,此方法会改变原数组,返回值 返回一个空的数组

        let arr = [1, 2, 3]
        let num = arr.splice(2, 0, 666, 999)
        console.log(arr);  //[1, 2, 666, 999, 3]
        console.log(num);  //[]

语法3: array.splice(索引,要删除的项数,要添加的值1,值1...)--添加并删除

从指定的索引位置开始,先删除任意数个值,再添加任意个值,此方法会改变原数组

返回值 将被删除的元素以数组的形式返回,删除项数为0,则返回一个空的数组

        let arr = [1, 2, 3, 4, 5]
        let num = arr.splice(2, 2, 666, 999, 7878)
        console.log(arr);  //[1, 2, 666, 999, 7878, 5]
        console.log(num);  //[3, 4]

4、reverse()

将数组中的元素按照原始位置进行反转,此方法直接改变原数组,返回值 返回的是反转之后的数组

        let arr = [1, 2, 3, 4, 5]
        let num = arr.reverse()
        console.log(arr);  //[5, 4, 3, 2, 1]
        console.log(num);  //[5, 4, 3, 2, 1]

5、join()

用指定的分隔符将数组中的每一项拼接起来,拼接为一个字符串,此方法不会改变原数组,返回值 返回的是拼接后的字符串

语法: array.join(分割符)---分隔符必须是字符串类型,如果是空字符串,直接拼接,如果不设置参数,则默认以逗号拼接

        let arr = [1, 2, 3, 4, 5]
        let num = arr.join('-')
        console.log(arr);  //[1, 2, 3, 4, 5]
        console.log(num, typeof (num));  // 1-2-3-4-5  string

6、split()

把一个字符串分割成字符串数组,不改变原始字符串,返回值 返回的是分割后的字符串数组

语法: str.split(分割符)---分隔符必须是字符串类型,如果是空字符串,一个字符分割为一个值

         let str = 'sdhihdias'
         let n = str.split('d')
         console.log(n);  //['s', 'hih', 'ias']
         console.log(str); //sdhihdias    

7、indexOf()和lastIndexOf()

indexOf()返回某个指定的字符串值在字符串中首次出现的位置索引

lastIndexOf()返回最后一次出现的位置索引

区分大小写,如果没有找到匹配的字符串则返回 -1

语法: str.indexOf(要查找的字符串值)

        let str = 'sdhihdias'
        let n = str.indexOf('d')
        console.log(n);  //1
        console.log(str); // sdhihdias

8、includes()

查找字符串中是否存在某个值,区分大小写,返回值 返回的是布尔值,找到返回true,找不到返回false

语法: str.includes(要查找的字符串值)

        let str = 'sdhihdias'
        let n = str.includes('d')
        console.log(n);  // true
        console.log(str); //sdhihdias

9、every()

遍历数组,检测是否存在满足指定条件的值,此方法不会改变原数组

返回值 返回的是布尔值,都满足返回true,有一个不满足返回false,且后面的值不再进行检测

语法: array.every(函数)

        let arr = [1, 2, 3, 4, 5]
        let bool = arr.every(value => value > 3)
        console.log(arr);  //[1, 2, 3, 4, 5]
        console.log(bool);  // false

10、some()

遍历数组,检测数组中的元素是否满足指定条件,此方法不会改变原数组

返回值 返回的是布尔值,有一个满足返回true,且后面的值不再进行检测,都不满足返回false

语法: array.some(函数)

        let arr = [1, 2, 3, 4, 5]
        let bool = arr.some(value => value > 3)
        console.log(arr);  //[1, 2, 3, 4, 5]
        console.log(bool);  // true

11、findIndex()

遍历数组,查找存在满足指定条件的第一个元素的位置索引,此方法不会改变原数组

返回值 返回满足指定条件的第一个元素的位置索引,且后面的值不再进行检测,找不到返回-1

语法: array.findIndex(函数)

        let arr = [1, 2, 3, 4, 5]
        let num = arr.findIndex(value => value <= 1)
        console.log(arr);  //[1, 2, 3, 4, 5]
        console.log(num);  // 0

12、map()

遍历数组,按照原始数组元素的顺序依次处理,不改变原数组,返回值 返回处理后的新的数组

语法: array.map(处理函数)

        let arr = [1, 2, 3, 4, 5]
        let newArr = arr.map(value => value + 10)
        console.log(arr);  //[1, 2, 3, 4, 5]
        console.log(newArr);  // [11, 12, 13, 14, 15]