数组的变异方法与非变异方法

变异方法会直接修改原数组,非变异方法则不会

变异方法:

  1. push()     在数组末尾添加一个或多个元素,返回新数组的长度

    let arr = [1,2,3]
    console.log('result', arr.push(4)) // result 4

  2. pop()       移除数组的最后一个元素,返回被移除的元素

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

  3. shift()      移除数组的第一个元素,返回被移除的元素

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

  4. unshift()  在数组开头添加一个或多个元素,返回新数组的长度  

    let arr = [1,2,3]
    console.log('result', arr.unshift(0)) // result 4

  5. splice()    从指定位置删除或添加元素,返回被删除的元素组成的数组

let arr = [1,2,3]
console.log('result', arr.splice(1,1)) 
// 从索引1开始删除1个元素
// result [2]
console.log('result1', arr.splice(1,2,4,5)) 
// 从索引1开始删除2个元素,并插入4,5
// result1 [2,3]

  6. sort()     对数组元素进行排序,默认按字符串Unicode码点排序

    let arr = [13, 5, 8]
    console.log('result', arr.sort((a,b) => a - b))  // 从小到大排列 result [5,8,13]
    console.log('result', arr.sort((a,b) => b - a))  // 从大到小排列 result [13,8,5]

  7. reverse()  反转数组元素的顺序

    let arr = [1,2,3]
    console.log('result', arr.reverse())  // result [3,2,1]

 

非变异方法:

  1. concat()    合并两个或多个数组,返回一个新数组

    let arr = [1,2,3]
    let arr2 = [4,5,6]
    console.log('result', arr.concat(arr2)) // result [1,2,3,4,5,6]

  2. slice()     切片,返回数组的某一部分(浅拷贝),不改变原数组

    let arr = [1,2,3]
    console.log('result', arr.slice(1,2)) // 从索引1切到索引2 result [2]

  3. join()       将数组元素连接成一个字符串,返回字符串

    let arr = [1,2,3]
    console.log('result', arr.join('?')) // 使用?连接成字符串 result 1?2?3

  4. toString()     将数组转换为字符串,返回字符串

    let arr = [1,2,3]
    console.log('result', arr.toString()) // result 1,2,3

  5. map()     对数组的每个元素执行回调函数,返回一个新数组

    let arr = [1,2,3]
    console.log('result',arr.map(item => item * 2)) // result [2,4,6]

  6. forEach()     对数组的每个元素执行回调函数,无返回值

    let arr = [1,2,3]
    console.log('result',arr.forEach(item => item * 2)) // result undefined

  7. flat()        将嵌套数组“拉平”,返回一个新数组

    let arr = [1,[2, [3, [4, 5]]]]
    console.log('result', arr.flat()) // result [1, 2, [3, [4, 5]]]
    console.log('result', arr.flat(2)) // result [1, 2, 3, [4, 5]]
    console.log('result', arr.flat(Infinity)) // result [1, 2, 3, 4,5]

  8. includes()     判断数组是否包含某个元素,返回布尔值

    let arr = [1,2,3]
    console.log('result', arr.includes(2)) // result true
    console.log('result', arr.includes(5)) // result false

  9. some()     检测数组中是否有元素满足条件,返回布尔值

    let arr = [1,2,3]
    console.log('result', arr.some((item) => item < 5)) // result true
    console.log('result', arr.some((item) => item > 5)) // result false

  10. every()       检测数组中的所有元素是否都满足条件,返回布尔值

    let arr = [1,2,3]
    console.log('result', arr.every((item) => item < 5)) // result true
    console.log('result', arr.every((item) => item > 5)) // result false

  11. find()      返回数组中满足条件的第一个元素,若不存在则返回 undefined

    let arr = [{
        id: 1,
        name: '张三'
    },{
        id: 2,
        name: '李四'
    },{
        id: 3,
        name: '王五'
    }]
    console.log('result', arr.find((item) => item.id === 2)) // result {id: 2, name: '李四'}

  12. findIndex()   返回数组中满足条件的第一个元素的索引,若不存在则返回 -1

    let arr = [{
        id: 1,
        name: '张三'
    },{
        id: 2,
        name: '李四'
    },{
        id: 3,
        name: '王五'
    }]
    console.log('result', arr.findIndex((item) => item.id === 2)) // result 1

  13. indexOf()     返回数组中指定元素的第一个索引,若不存在则返回 -1

    let arr = [1,2,3]
    console.log('result', arr.indexOf(3)) // result 2

  14. lastIndexOf()  返回数组中指定元素的最后一个索引,若不存在则返回 -1

    let arr = [1,2,3,4,3,5]
    console.log('result', arr.lastIndexOf(3)) // result 4
posted on 2025-03-08 13:24  贲风  阅读(26)  评论(0)    收藏  举报