Array 数组的一些方法

172 阅读3分钟

// 1. 数组的 pop 方法; 改变原数组

        let arr = [1, 2, '小白', 3]
        // 删除数组的最后一个 返回的是删除的那一个值, 并且直接改变原数组
        let bar = arr.pop()
        console.log(arr); // [1, 2, '小白']
        console.log(bar); // 3

// 2. 数组的 unshift 方法; 改变原数组

        let arr = [1, 2, '小白', 3]
        // 向数组的最前面添加数据, 改变原数组, 返回的是数组的 length 长度
        let bar = arr.unshift('小顾')
        console.log(arr); // ['小顾', 1, 2, '小白', 3]
        console.log(bar); // 5

// 3. 数组的 shift 方法; 改变原数组

        let arr = [1, 2, '小白', 3]
        // 删除数组的第 1 个数据, 返回值是被删除的数据
        let bar = arr.shift()
        console.log(arr); // [2, '小白', 3]
        console.log(bar); // 1

// 4. 数组的 concat 方法; 不改变原数组

        let arr = [1, 2, '小白', 3]
        // 拼接数组的方法, 返回的是拼接后的数组
        let bar = arr.concat([10, 11], ['校花', '校草'])
        console.log(arr); // [1, 2, '小白', 3]
        console.log(bar); // [1, 2, '小白', 3, 10, 11, '校花', '校草']

// 5. 数组的 splice 方法; 改变原数组

        let arr = [1, 2, '小白', 3]
        // 传两个参数: (开始的下标, 截取几个) 返回的是截取的数据按照数组的形式返回
        let bar = arr.splice(2, 2)
        console.log(arr); // [1, 2, 3]
        console.log(bar); // ['小白']
        // 传一个参数: (只传一个) 数组的下标开始截取到最后
        let foo = arr.splice(1)
        console.log(arr); // [1]
        console.log(foo); // [2, '小白', 3]
        // 传多个参数: (下标, 截取几个, 替换的数据) 截取的个数是 0 那么就相当于直接插值进去
        let num = arr.splice(1, 0, '你好', '小顾')
        console.log(arr); // [1, '你好', '小顾', 2, '小白', 3]
        console.log(num); // []

// 6. 数组的 slice 方法; 不改变原始数组

        let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
        // // 按数组的下标截取 (起始下标开始, 结束的下标) 下标是包前不包后
        let bar = arr.slice(1, 3)
        console.log(arr); // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
        console.log(bar); // ['b', 'c']
        // 只传一个参数那么就是从下标开始一直截取到最后
        let bar = arr.slice(1)
        console.log(bar); // ['b', 'c', 'd', 'e', 'f', 'g']

// 7. 数组的 sort 方法; 改变原数组

        let arr = [1, 3, 7, 9, 101, 5, 15]
        // 第一个参数不会变, 不传参只能处理 10 以内的数据排序, 从小到大
        let bar = arr.sort()
        console.log(arr); // [1, 101, 15, 3, 5, 7, 9]
        console.log(bar); // [1, 101, 15, 3, 5, 7, 9]
        // 从小到大排序
        let bar = arr.sort((a, b) => {
            return a - b
        })
        console.log(arr); // [1, 3, 5, 7, 9, 15, 101]
        console.log(bar); // [1, 3, 5, 7, 9, 15, 101]
        // 从小到大排序
        let bar = arr.sort((a, b) => {
            return b - a
        })
        console.log(arr);
        console.log(bar);

// 8. 数组的 reverse 方法; 改变原数组

        let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
        // // 使原数组反转
        let bar = arr.reverse()
        console.log(arr); // ['g', 'f', 'e', 'd', 'c', 'b', 'a']
        console.log(bar); // ['g', 'f', 'e', 'd', 'c', 'b', 'a']

// 9. 数组的 join 方法; 不改变原数组

        let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
        // 以传的参数为连接符, 返回的是一个 " 字符串 ", 如果不传那么就是以 " , " 连接
        let bar = arr.join()
        console.log(arr); // ['a', 'b', 'c', 'd', 'e', 'f', 'g']
        console.log(bar); // a*b*c*d*e*f*g
    concat() 不改变原始数组
    slice() 不改变原始数组
    join() 不改变原始数组
    push()
    pop()
    unshift()
    shift()
    splice()
    sort()
    reverse()