JavaScript数组的方法大全

138 阅读4分钟

数组的方法:

  • push、pop、unshift、shift、reverse、sort、splice。(前七个会改变原数组)

  • slice、concat、join、indexOf、lastIndexOf。(后五个不会改变原数组)

    Egvar arr = [1, 2, 300, 4, 5, 4, 4, 4, 4]
        console.log('原始数组: ', arr)
        

1、push

        语法: 数组.push(数据)
        作用: 向 数组末尾 添加数据
        返回值: 追加数据后, 数组最新的长度

    Eg:push
        var num = arr.push(500)
        console.log(arr)
        console.log(num)    
    

2、pop

        语法: 数组.pop()
        作用: 删除数组的最后一项
        返回值: 删除的哪一项数据

    Eg:pop
        var num = arr.pop()
        console.log(arr)    // ---> [1, 2, 3]
        console.log(num)    // ---> 500

    

3、unshift

        语法: 数组.unshift(数据)
        作用: 向 数组头部 添加数据
        返回值: 追加数据后, 数组最新的长度

    Eg:unshift
        var num = arr.unshift(1000)
        console.log(arr)
        console.log(num)
    

4、shift

        语法: 数组.shift()
        作用: 删除数组头部(第一项)的数据
        返回值: 删除的哪一项数据

    Eg:shift
        var num = arr.shift()
        console.log(arr)
        console.log(num)

    

5、reverse

        语法: 数组.reverse()
        作用: 反转数组
        返回值: 反转后的数组

    Eg:reverse
        var num = arr.reverse()
        console.log('反转后的数组: ', arr)
        console.log('reverse的返回值: ', num)

        var arr = [100, 1, 101, 3, 2, 102]
        // 下标     0   1   2   3  4   5
        console.log('原始数组: ', arr)    
    

6、sort

        语法: 数组.sort(); 数组.sort(function (a, b) {retrun a - b}); 数组.sort(function (a, b) {retrun b - a})
        作用:
            不传参数
                会将数组内所有值, 转换为字符串, 然后一位一位的对比(第一位相同,对比第二位,...)
            传参---函数 return a - b
                会将数组内所有的值, 按照数字的 从小到大排列
            传参---函数 return b - a
                会将数组内所有的值, 按照数字的 从大到小排列
        返回值: 
            不传参数
                将排序后的数组返回
            传递参数
                将排序后的数组返回

    Eg:sort
        6.1 不传参数
        var num = arr.sort()
        console.log('sort后的 arr: ', arr)
        console.log('sort 的返回值: ', num)

        6.2 return a - b
        var num = arr.sort(function (a, b) { return a - b })
        console.log('sort后的 arr: ', arr)
        console.log('sort 的返回值: ', num)

        6.3 return b - a
        var num = arr.sort(function (a, b) { return b - a })
        console.log('sort后的 arr: ', arr)
        console.log('sort 的返回值: ', num)

    

7、splice

        语法: 数组.splice(开始索引, 多少个);  数组.splice(开始索引, 多少个, 数据1, 数据2, 数据3...)
        作用: 
            不传参数: 剪切数组中的某一段数据
            传递参数: 剪切数组中的某一段数据, 将第三个参数开始, 当成新数据插入到数组内
        返回值: 截切后的数据(数组形式)

    Eg:splice
        7.1 不传参数
        var num = arr.splice(1, 3)
        console.log('splice 后的 arr: ', arr)
        console.log('splice 的 返回值: ', num)

        7.2 传递参数
        var num = arr.splice(1, 3, '数据1', '数据2', '数据3', '数据4')
        console.log('splice 后的 arr: ', arr)
        console.log('splice 的 返回值: ', num)

        var arr = [100, 1, 101, 3, 2, 102]
        // 下标     0   1   2   3  4   5
        console.log('原始数组: ', arr)

    

8、slice

        语法: 数组.slice(开始索引, 结束索引)
        参数特点: 
            1. 包含开始索引, 不包含结束索引(到结束索引前一位)
            2. 参数接受负数(相当于 数组.length + 负数)
            3. 不传结束索引     相当于写了 数组.length
            4. 一个参数都不传   相当于复制整个数组, 或者只传递第一个参数为 0
        作用: 复制数组中的某一段数据
        返回值: 复制出来的内容

    Eg:slice
        8.1 正常传参
        var num = arr.slice(1, 5)
        console.log('slice 后的 arr: ', arr)
        console.log('slice 的返回值: ', num)
        
        8.2 传递负数
        var num = arr.slice(1, -1)  // arr.length + (-1)    ---> 6 + (-1)   ---> 6 - 1 ---> 5
        console.log('slice 后的 arr: ', arr)
        console.log('slice 的返回值: ', num)

        8.3 不传结束索引     相当于写了 数组.length
        var num = arr.slice(2)
        console.log('slice 后的 arr: ', arr)
        console.log('slice 的返回值: ', num)

        8.4 一个参数都不传   相当于复制整个数组, 或者只传递第一个参数为 0
        var num = arr.slice()
        console.log('slice 后的 arr: ', arr)
        console.log('slice 的返回值: ', num)    
    

9、concat

        语法: 数组.concat(数据1, 数据2)
        作用: 将 参数, 合并到 指定数组内(如果参数写了数组, 那么会将数组的每一个值合并到指定数组)
        返回值: 合并后的数组

    Eg:concat
        var num = arr.concat(100, 200, 'QF', 'haha', [600, 700, 800])
        console.log('concat 后的 arr: ', arr)
        console.log('concat 的返回值: ', num)    
     

10、join

        语法: 数组.join(连接符)
            参数可以不传, 不传递默认按照 , 逗号
        作用: 通过连接符连接数组的每一个值
        返回值: 连接好的数组

    Eg:join
        10.1 传递参数
        var num = arr.join('|')
        console.log('join 后的 arr: ', arr)
        console.log('join 的返回值: ', num)

        10.2 不传参数
        var num = arr.join()
        console.log('join 后的 arr: ', arr)
        console.log('join 的返回值: ', num)

11、indexOf

        语法: 数组.indexOf(数据);   数组.indexOf(数据, 开始索引)
        作用: 在数组内寻找指定数据
        返回值: 
            1. 找到数据的时候, 返回数据第一次出现的下标
            2. 找不到的时候, 返回 -1

    Eg:indexOf
        var num = arr.indexOf(4, 0)
        console.log('indexOf 后的 arr: ', arr)
        console.log('indexOf 的返回值: ', num)

12、lastIndexOf

        语法: 数组.lastIndexOf(数据);   数组.lastIndexOf(数据, 开始索引)
        作用: 在数组内寻找指定数据(倒叙寻找)
        返回值: 
            1. 找到数据的时候, 返回数据第一次出现的下标
        2. 找不到的时候, 返回 -1

    Eg:lastIndexOf
        var num = arr.lastIndexOf(4, 4)
        console.log('lastIndexOf 后的 arr: ', arr)
        console.log('lastIndexOf 的返回值: ', num)