数组(Array)常用方法

Posted 王——小喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组(Array)常用方法相关的知识,希望对你有一定的参考价值。

 实例方法

arr.forEach(callback)遍历数组,没有返回值

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

 let arr = [1, 2, 3, 4, 5]
    arr.forEach((item, index, array) => {
      item = item * 2
      console.log(`item:${item}    index:${index}     array:${array}`)
    })
    // item:2    index:0     array:1,2,3,4,5
    // item:4    index:1     array:1,2,3,4,5
    // item:6    index:2     array:1,2,3,4,5
    // item:8    index:3     array:1,2,3,4,5
    // item:10   index:4     array:1,2,3,4,5

arr.find(callback)遍历查找首次满足条件的值,并返回值

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

let arr = [7, 8, 9, 10, 5]
    let a = arr.find((item, index, array) => item > 3)
    console.log(a)  // 0

arr.findIndex(callback)遍历查找首次满足条件的值,并返回索引号

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

 let arr = [7, 8, 9, 10, 5]
    let a = arr.findIndex((item, index, array) => item > 3)
    console.log(a)  // 7

arr.some(callback)遍历查找是否存在满足条件的值,存在就返回true,否则就返回false

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

let arr = [7, 8, 9, 10, 5]
    let a = arr.some((item, index, array) => item > 11)
    console.log(a)  // false
    let b = arr.some((item, index, array) => item < 11)
    console.log(b)  // true

arr.every(callback)遍历查找是否所有元素都满足条件,都满足返回true,否则返回false

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

let arr = [7, 8, 9, 10, 5]
    let a = arr.every((item, index, array) => item > 6)
    console.log(a)  // false
    let b = arr.every((item, index, array) => item < 11)
    console.log(b)  // true

arr.filter(callback) 用于遍历筛选满足条件的元素(过滤数组),把所有满足条件的元素返回到新数组

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

let arr = [7, 8, 9, 10, 5]
    let a = arr.filter((item, index, array) => item > 6)
    console.log(a)  // [7, 8, 9, 10]
    let b = arr.filter((item, index, array) => item < 10)
    console.log(b)  //[7, 8, 9, 5]

arr.map(callback)用于遍历数组每个元素让其执行一遍回调函数,把所有结果放到新数组返回

callback的参数: item--当前元素   index --当前元素对应的索引号    array --原数组

 let arr = [1, 2, 3, 4, 5]
    let a = arr.map((item, index, array) => {
      item = item * 3
    })
    console.log(a)//[3,6,9,12,15]

arr.reduce(callback)用于将数组中的每个元素执行一遍回调函数,并返回计算结果

callback的参数: acc--累计器(累计回调的返回值; 它是上一次调用回调时返回的累积值,或者是提供的初始值)   cur--当前元素  index--当前索引值  array --原数组

 let arr = [1, 2, 3, 4]
    let arr1 = arr.reduce((acc, cur, index, array) => { return acc + cur })
    console.log(arr1)//10
    //callback 被调用三次,每次调用的参数和返回值如下表
    // 第一次调用     acc=1    cur=2    index=1  arr=[1, 2, 3, 4]   return=3
    // 第二次调用     acc=3    cur=3    index=2  arr=[1, 2, 3, 4]   return=6
    // 第三次调用     acc=6    cur=4    index=3  arr=[1, 2, 3, 4]   return=10

    let arr2 = arr.reduce((acc, cur, index, array) => { return acc + cur }, 10)
    console.log(arr2)//20
    //callback 被调用四次,每次调用的参数和返回值如下表
    // 第一次调用     acc=10    cur=1    index=0  arr=[1, 2, 3, 4]   return=11
    // 第二次调用     acc=11    cur=2    index=1  arr=[1, 2, 3, 4]   return=13
    // 第三次调用     acc=13    cur=3    index=2  arr=[1, 2, 3, 4]   return=16
    // 第四次调用     acc=16    cur=4    index=3  arr=[1, 2, 3, 4]   return=20

arr.sort() 对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的,根据公式可按照降序和升序比较

let arr = [2, 10, 6, 1, 4, 22, 3]
    console.log(arr.sort())   // [1, 10, 2, 22, 3, 4, 6]
    let arr1 = arr.sort((a, b) => a - b)
    console.log(arr1)   // [1, 2, 3, 4, 6, 10, 22]
    let arr2 = arr.sort((a, b) => b - a)
    console.log(arr2)  // [22, 10, 6, 4, 3, 2, 1]

arr.indexOf()查找在数组中首次出现的索引位置,如果找到就会返回首次出现的索引值,找不到就会返回-1

arr.lastIndexOf()查找在数组中最后一次出现的索引位置,如果找到就会返回首次出现的索引值,找不到就返回-1

let arr = ['a', 'b', 'c', 'a', 'b', 'c', 'd']
    console.log(arr.indexOf('a'))   // 0
    console.log(arr.indexOf('f'))   // -1
    console.log(arr.lastIndexOf('a'))   //3

arr.pop()删除数组的最后一项,并返回删除的元素

arr.shift()删除数组的第一项,并返回删除的元素

let arr = [1, 2, 3, 4, 5]
    console.log(arr.pop())     // 5
    console.log(arr)  //[1,2,3,4]
    console.log(arr.shift())//1
    console.log(arr)//[2,3,4]

arr.splice()删除或替换数组中一项或几项元素,并返回删除或替换的元素
第一个参数:从哪个索引值开始;第二个参数:删除或替换几个;第三个参数:替换为什么

let arr = [1, 2, 3, 4, 5]
    let re = arr.splice(1, 1, 'aaa')//替换
    console.log(re);//[2]
    console.log(arr);//[1,'aaa',3,4,5]
    let res = arr.splice(1, 1)//删除
    console.log(res);//['aaa']
    console.log(arr)//[1,3,4,5]

arr.push(要添加的元素)从数组最后的位置追加元素,并返回新数组的长度

arr.unshift(要添加的元素)从数组最前面追加元素,并返回新数组的长度

let arr = [1, 2, 3, 4, 5]
    console.log(arr.push(5))   // 6
    console.log(arr) // [1,2,3,4,5,5]
    console.log(arr.unshift(1))   // 7
    console.log(arr) // [1,1,2,3,4,5,5]

arr.reverse() 将数组反转,返回反转后的数组

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

arr.concat() 连接两个数组 返回值为连接后的新数组

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

静态方法

Array.isArray()判断是否为数组,返回布尔值

    let arr = [1, 2, 3, 4, 5]
    let a = Array.isArray(arr)//true
    let str = 'aaa'
    let b = Array.isArray(str)//false

Array.from()把有length属性的伪数组转成真数组

let o = {
      0: 'a',
      1: 'b',
      2: 'c',
      3: 'd',
      length: 4
    }
    let arr = Array.from(o)
    console.log(arr);//['a','b','c','d']
    let lis = document.querySelectorAll('li')
    let array = Array.from(lis)
    console.log(array);//[li,li,li]

以上是关于数组(Array)常用方法的主要内容,如果未能解决你的问题,请参考以下文章

10个JavaScript代码片段,使你更加容易前端开发。

常用Java程序片段

js中数组Array的一些常用方法总结

数组Array常用方法

36个工作中常用的JavaScript函数片段

数组中常用的方法