JavaScript数组常用方法

192 阅读4分钟

1、arr.push()

push()方法可以在数组末尾添加一个或多个新元素,并返回数组新长度。 示例:

const arr = [10,20,30]
const len = arr.push(40,50)
console.log(arr) // [10,20,30,40,50]
console.log(len) // 5

2、arr.splice()

splice(start,deleteCount,ele)方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。

参数1:start 代表修改的起始位置(下标) 可以为负值

参数2:deleteCount 代表删除元素的个数,如果大于start之后的元素的总数,则从start后面的元素都被删除,如果是0或负数,则不移除元素

参数3:ele 可选 要添加进数组的元素,如果不指定,splice()方法只删除元素 示例:

const arr = [10,20,30]
const a = arr.splice(1,1)
console.log(arr) // [10,30]
console.log(a) // [20]
const arr1 = [2,4,6,8]
arr1.splice(0,1,3)
console.log(arr1) // [3,4,6,8]

3、arr.join()

join()方法可以将数组的所有元素拼接成一个字符串并返回这个字符串 参数可选 如果不传,默认数组被逗号拼接,若传空字符串'',则代表元素之间没有任何字符 示例:

const arr = ['a','b','c']
const str = arr.join()
console.log(str)// "a,b,c"
const arr1 = ['a','b','c']
const str1 = arr1.join('')
console.log(str1)// "abc"

4、arr.forEach()

forEach()方法可以遍历数组 该方法没有返回值 示例:

const arr = [10,20,30,40]
arr.forEach(ele=>{
    console.log(ele) // 10,20,30,40
})

5、arr.map()

map()可以遍历并在回调函数里面操作数组,返回值是一个由回调函数映射过后的新数组 示例:

const arr1 = [1,2,3,4]
const arr2 = arr1.map((ele) => ele + 1)
console.log(arr2) // [2,3,4,5]

6、arr.filter()

filter()方法可以过滤数组并返回一个过滤后的新数组

示例:

//删除数组中为0的元素
let arr = [0,1,0,2,3,0,4]
// 把不为0的元素过滤出来
arr = arr.filter(ele=>{
    // 返回值为true时 把改元素放进新数组
    return ele
})
console.log(arr) // [1,2,3,4]

7、arr.some()

some()方法可以遍历数组,其回调函数的执行次数与数组的长度不相等,当回调函数的返回值为true时方法的返回值为true,然后停止执行回调函数,当所有条件都为false时,方法的返回值为false,会把数组遍历完。应用场景:小选影响全选

// 用法示例
const arr = [1,2,3]
const bol = arr.some(ele=>{
console.log(ele)
return ele === 2
})
console.log(bol)
// 执行结果: 1,2,false

8、arr.every()

every()遍历数组,其回调函数的执行次数与数组的长度不相等,当回调函数的返回值为false时方法的返回值为false,然后停止执行回调函数,当所有条件都为true时,方法的返回值为true,会把数组遍历完。应用场景:全选影响小选

// 用法示例
const arr = [1,2,3]
const bol = arr.every(ele=>{
    console.log(ele)
    return ele === 2
})
console.log(bol)
 // 1 , 2 , fasle

9. arr.raduce()

raduce()对数组中每个元素执行一个回调,会将之前的元素的计算结果作为参数传入,最终返回左右一次结果。 应用场景:求数组累加和

  • 第一个参数:回调 (sum,value,index)=>{}
  1. sum : 累加和变量
  2. value:当前元素
  3. index: 当前下标
  4. return : 下一次回调sum的值
  • 第二个参数: sum初始值
  1. 如果不传,sum默认是第一个元素值
  2. 一般要传0, 如果不传空数组的话reduce直接报错
const arr = [2,3,4]
const sum = arr.raduce((sum,ele,index)=>{
    console.log(index)
    return sum+ele
},0)
console.log(sum)
// 0, 1, 2, 9

10、arr.concat()

concat()方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。

const arr1 = [1,2,3]
const arr2 = [1,2,2]
consr arr3 = arr1.concat(arr2)
console.log(arr3) // [1,2,3,1,2,2]

11、arr.pop()

pop() 方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。

const arr = [1,2,3]
const num = arr.pop()
console.log(arr) // [1,2]
console.log(num) // 3

12、arr.findIndex()

findIndex()方法用于找满足条件元素在数组中的下标,找到了返回值是该下标,遍历完数组之后找不到返回值为-1

const arr = [1,2,3]
const index = arr.findIndex(ele=>{
return ele === 0
})
const i = arr.findIndex(ele=>{
return ele === 1
})
console.log(index,i) // -1,0

13、arr.includes()

includes()方法可以判断一个元素是否在这个数组中 返回值是Boolean

const arr = [4,5,6]
console.log(arr.includes(1)) // false
console.log(arr.includes(4)) // true

14、arr.flat()

flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。 常用于数组降维

const arr = [1,2,3,[[1,2,3]]]
console.log(arr.flat()) // 不传值 默认遍历一层 [1,2,3,[1,2,3]]
console.log(arr.flat(2)) // 不传值 默认遍历一层 [1,2,3,1,2,3]

15、arr.find()

find()方法与findIndex()类似,不同点是find返回值是元素本身,如果不满足条件返回值是undefined

const arr = [1,2,3]
const num = arr.find(ele=>{
    return ele === 2
})
const num1 = arr.find(ele=>{
    return ele === 0
})
console.log(num,num1) // 2, undefind