JS---数组常用方法

184 阅读7分钟

改变原数组

1.push()

  • 语法:数组.push()
  • 作用:将数据追加到数组的末尾
  • 返回值:追加数据后数组最新的长度
        var arr = [100, 200, 300, 400, 100, 500]
        console.log(arr)//[100, 200, 300, 400, 100, 500]
        var res = arr.push("追加的")
        console.log(arr)//[100, 200, 300, 400, 100, 500, '追加的']
        console.log(res)//7

知识点: 在 函数传参的过程中, 如果实参的值是一个引用数据类型,然后在函数内部 对这个形参 做了一些修改,那么会影响到 函数外边的 原数据。

2.pop()

  • 语法:数组.pop()
  • 作用:删除数组最后一个数据
  • 返回值:被删除的数据
        var arr = [100, 200, 300, 400, 100, 500]
        console.log(arr)
        var res = arr.pop()
        console.log(arr)//[100, 200, 300, 400, 100]
        console.log(res)//500

3.unshift()

  • 语法:数组.unshift()
  • 作用:将数据添加到数组的最前面
  • 返回值:添加数据后数组最新的长度
        var arr = [100, 200, 300, 400, 100, 500]
        console.log(arr)
        var res = arr.unshift(-100)
        console.log(arr)//[-100, 100, 200, 300, 400, 100, 500]
        console.log(res)//7

4.shift()

  • 语法:数组.shift()
  • 作用:删除数组最前面一个数据
  • 返回值:被删除的数据
        var arr = [100, 200, 300, 400, 100, 500]
        console.log(arr)
        var res = arr.shift()
        console.log(arr)//[200, 300, 400, 100, 500]
        console.log(res)//100

5.reverse()

  • 语法:数组.reverse()
  • 作用:将数组反转
  • 返回值:反转后的数组
        var arr = [100, 200, 300, 400, 100, 500]
        console.log(arr)
        var res = arr.reverse()
        console.log(arr)//[500, 100, 400, 300, 200, 100]
        console.log(res)//[500, 100, 400, 300, 200, 100]

6.sort()

  • 语法:
    • 1.数组.sort() ---将数组内的数据转换为字符串,然后一位一位的对比
    • 2.数组.sort (function (a,b) { return a - b }) ---从小到大
    • 3.数组.sort (function (a,b) { return b - a }) ---从大到小
  • 作用:将数组进行排序
  • 返回值:排序好的新数组
        var a = [10, 8, 34, 18, 6, 56, 60, 12, 23]
        var res = a.sort(function (a, b) {
            return a - b
        })
        console.log(a)  // [6, 8, 10, 12, 18, 23, 34, 56, 60]   
        console.log(res)// [6, 8, 10, 12, 18, 23, 34, 56, 60]

7.splice()

  • 语法:
    • 数组.splice(开始索引,多少个)
    • 数组.splice(开始索引,多少个,数据1,数据2,数据3......)
  • 开始索引:默认为 0 ,多少个:默认为 0 , 要插入的数据:默认是 没有
  • 作用:删除数组中若干数据,并选择是否插入新的数据
  • 返回值:以新数组的形式返回被删除的数据(剪切到的内容)
        var arr = [100, 200, 300, 400, 100, 500]
        var res = arr.splice(1, 2)
        console.log(arr)//[300, 400, 100, 500]
        var arr2 = [1, 2, 3, 4, 5]
        var res2 = arr2.splice(0, 3, '新加的数据', '张三', true, 1001)
        console.log(arr2) //['新加的数据', '张三', true, 1001, 4, 5]
        console.log(res2) //[1, 2, 3]

不会改变原数组

8.indexOf()

  • 语法:数组.indexOf(数据, 从那个下标开始查找)
  • 第二个参数不写默认为 0
  • 作用:从左向右查找数据在数组中的索引位置
  • 返回值:有该数据,返回第一次出现的索引位置;没有该数据,返回-1
        var arr = [100, 200, 300, 400, 100, 500]
        var res = arr.indexOf(200)
        console.log(res)   // 1
        var res = arr.indexOf(600)
        console.log(res)   // -1

9.lastIndexOf()

  • 语法:数组.lastIndexOf(数据, 从那个下标开始查找)
  • 第二个参数不写默认为 数组最后一个下标
  • 作用:从右向左查找数据在数组中的索引位置
  • 返回值:有该数据,返回第一次出现的索引位置;没有该数据,返回-1
        var arr = [100, 200, 300, 400, 100, 500]
        var res=arr.indexOf(100)
        console.log(res)//0
        var res2=arr.lastIndexOf(100)
        console.log(res2)//4

10.slice()

  • 语法:数组.slice(开始索引,结束索引)---包前不包后
  • 开始索引:默认为0 结束索引:默认为数组的长度
  • 作用:截取数组中的某些数据
  • 返回值:以新数组的形式返回截取出来的数据
        var arr = [100, 200, 300, 400, 100, 500]
        var res = arr.slice(1,3)
        console.log(arr,res)//[100, 200, 300, 400, 100, 500]  [200, 300]
        var res2=arr.slice(1,-2)
        console.log(res2)//[200, 300, 400] 从右往左截取掉2个
        var res3=arr.slice(1)
        console.log(res3)//[200, 300, 400, 100, 500]  从索引位置开始到最后全部截取
        var res4=arr.slice(-3)
        console.log(res4)//[400, 100, 500] 从右往左截取3个

11.concat

  • 语法:数组.concat(其他数组)
  • 作用:将其他数组和数组拼接在一起
  • 返回值:拼接好的新数组
        var arr = [100, 200, 300, 400, 100, 500]
        var res = arr.concat([500, 600])
        console.log(arr, res)//[100, 200, 300, 400, 100, 500]   [100, 200, 300, 400, 100, 500, 500, 600]
        var arr2 = ['hello', 'world']
        var res2=arr.concat(arr2)
        console.log(arr,res2)//[100, 200, 300, 400, 100, 500]  [100, 200, 300, 400, 100, 500, 'hello', 'world']

12.join

  • 语法:数组.join()
  • 作用:将数组用 连接符 连接成为一个字符串
  • 返回值:连接好的字符串
  • 如果不传参数,默认按照 , 连接
        var arr = [100, 200, 300, 400]
        var res = arr.join('---')
        console.log(arr,res)//[100, 200, 300, 400]     '100---200---300---400'
        var res1 = arr.join()
        console.log(res1) // 100,200,300,400

13.forEach()

  • 语法:数组.forEach(function(item,index,origin){遍历数组后要做的事})
  • 参数: item:数组中每一个元素; index:每一个元素对应的下标; origin:原数组
  • 作用:遍历数组
  • 返回值:无

14.map()

  • 语法:数组.map( function ( item, index, arr ) {遍历数组后要做的事} )
  • 作用:根据原数组映射出来一个新数组
  • 返回值:映射后的新数组(需要在函数内部书写 return)
        var arr = [100, 200, 300, 400]
        var res = arr.map(function (item, index, arr) {
            return item * 10
        })
        console.log(arr,res) //[100, 200, 300, 400]    [1000, 2000, 3000, 4000]

15.filter()

  • 语法:数组.filter(function (item, index, origin) { })
  • 作用:过滤数组
  • 返回值:过滤出来的内容组成一个新数组
        var res = arr.filter(function (item, index, arr) {
            return item > 150
        })
        console.log(res)//[200, 300, 400, 500]

        var res2 = arr.filter(function (item, index, arr) {
                return index>3
        })
        console.log(res2)//[100, 500]

16.find() 用来获取数组中满足条件的第一个数据

  • 语法: 数组.find(function (item, index, origin) { })
    • item: 这个表示的是数组中的每一项
    • index: 这个表示的是每一项对应的索引
    • arr: 这个表示的是原数组
  • 作用: 用来获取数组中满足条件的数据
  • 返回值: 如果有 就是满足条件的第一个数据;如果没有就是undefined
  • 注意: 要以return的形式执行返回条件
        var arr = [1, 2, 3, 4, 5]
        console.log('原始数组 : ', arr);
        var res = arr.find(function (item) {
            return item > 3
        })
        console.log(res)//4

17.findIndex()

  • 语法:数组.findIndex(function (item, index, origin) { })
        var arr = [1, 2, 3, 4, 5]
        console.log('原始数组 : ', arr);origin
        var res = arr.findIndex(function (item) {
            return item < 2
        })
        console.log(res)//2

18.every()

  • 语法:数组.every(function (item, index, origin) {})
  • 作用:判断数组是不是每一项都满足条件
  • 返回值:符合条件--true 否则为--false
        var res = arr.every(function (item, index, arr) {
            return item > 50
        })
        console.log(res)//true

19.some()

  • 语法:数组.some(function (item, index, origin) {})
  • 作用:判断数组是不是某一项满足条件
  • 返回值:符合条件--true 否则为--false
        var res = arr.some(function (item, index, arr) {
            return item > 150
        })
        console.log(res)//true

20.reduce() 叠加后的效果

  • 语法: 数组名.reduce(function (prev, item, index, origin) { }, 初始值)
    • prev:一开始就是初始值 当第一次有了结果以后;这个值就是第一次的结果
    • item: 这个表示的是数组中的每一项
    • index: 这个表示的是每一项对应的索引
    • origin: 这个表示的是原数组
  • 作用: 就是用来叠加的
  • 返回值: 就是叠加后的结果
  • 注意: 以return的形式书写返回条件
        var arr = [1, 2, 3, 4, 5]
        var res = arr.reduce(function (prev, item) {
            return prev *= item
        }, 2)
        console.log(res);//240=2(初始值)*1*2*3*4*5