目录

unshift

pop

shift

filter

some

forEach

map

reverse

sort

indexOf

lastIndexOf

toString

join

concat

slice

includes

every

reduce

splice

find

findIndex

entries

flat


push

 push()        往数组尾部添加元素,返回新数组的长度,会改变原数组

const arr = [1, 2, 3]
// 返回的是新数组的长度
console.log(arr.push(4)) // 4
// 数组尾部进行添加,会改变原数组
console.log(arr) // [1, 2, 3, 4]

unshift

unshift()        往数组头部添加元素,返回新数组的长度,会改变原数组

const arr = [1, 2, 3]
// 返回的是新数组的长度
console.log(arr.unshift(0)) // 4
// 数组尾部进行添加,会改变原数组
console.log(arr) // [0, 1, 2, 3]

pop

pop()        删除数组的尾部元素,返回被删除的元素,会改变原数组,并且没有参数

const arr = [1, 2, 3, 4]
// 返回的是被删除的元素,并且没有参数
console.log(arr.pop()) // 4
// 删除数组尾部元素,会改变原数组
console.log(arr) // [1, 2, 3]

shift

shift()        删除数组头部的元素,返回被删除的元素,会改变原数组,并且没有参数

const arr = [1, 2, 3, 4]
// 返回的是被删除的元素
console.log(arr.shift()) // 1
// 删除数组尾部元素,会改变原数组
console.log(arr) // [2, 3, 4]

filter

filter()        按条件过滤数组,返回一个过滤后的新数组,不会改变原数组

const arr = [1, 2, 3, 4]
// 返回的是过滤后的新数组,需要一个新的变量来接收
const newArr = arr.filter((item, index) => {
    // 内部是一个函数,所以一定要有一个返回值
    return item > 2
})
console.log(newArr) // [3, 4]
// 不会改变原数组
console.log(arr) // [1, 2, 3, 4]

some

some()        寻找是否有满足条件的一项,如果有,返回true,如果没有,则返回false,不会改变原数组

const arr = [1, 2, 3, 4]
// 返回一个布尔值,看是否有满足条件的
let flag = arr.some(item => {
    // 内部是一个函数,所以一定要有一个返回值
    return item > 5
})
console.log(flag) // false
// 不会改变原数组
console.log(arr) // [1, 2, 3, 4]

forEach

forEach()        对数组进行遍历,没有返回值,常用于查找打印输出值

const arr = [1, 2, 3, 4]
// 遍历数组,没有返回值
let res = arr.forEach(item => item + 3)
console.log(res) // undefined

map

map()        对数组进行处理,返回一个处理后的新数组,不会改变原数组

const arr = [1, 2, 3, 4]
// 迭代数组,对数组中的每一项都进行处理,返回一个处理后的新数组
let newArr = arr.map(item => item + 3)
console.log(newArr) // [4, 5, 6, 7]
// 不会改变原数组
console.log(arr) // [1, 2, 3, 4]

reverse

reverse()        翻转数组,没有参数,会改变原数组

const arr = [1, 2, 3, 4]
// 迭代数组,返回一个处理后的新数组,经常用于处理数据
let newArr = arr.reverse()
console.log(newArr) // [4, 3, 2, 1]
console.log(arr) // [4, 3, 2, 1]

sort

sort()        对数组里的元素进行排序,但是只能对个位数排序,会改变原数组

const arr = [100, 2, 33, 4]
// 对数组进行排序,但是只能对个位数
let newArr = arr.sort()
console.log(newArr) // [100, 2, 33, 4]
// 会改变原数组
console.log(arr) // [100, 2, 33, 4]
// 排序完整写法  升序(a - b)  降序(b - a)
arr.sort((a, b) => a - b)
console.log(arr) // [2, 4, 33, 100]

indexOf

indexOf()        查找数组中的元素,存在,返回索引,不存在,则返回-1

const arr = [100, 2, 33, 4]
// 查找数组中的元素,如果存在,返回索引,如果不存在,则返回-1
let newArr = arr.indexOf(2)
console.log(newArr) // 1

lastIndexOf

lastIndexOf()        查找数组中的元素(排到最后的),存在返回索引,不存在,则返回-1

const arr = [100, 2, 33, 4, 100]
// 查找数组中的元素(排到最后的),如果存在,返回索引,如果不存在,则返回-1
let newArr = arr.lastIndexOf(100)
console.log(newArr) // 4

toString

toString()        数组转换为字符串,返回转换后的字符串(默认逗号分割),不会改变原数组

const arr = [100, 2, 33, 4, 100]
// 把数组转换为字符串,返回转换后的字符串,不会改变原数组
let str = arr.toString()
console.log(str) // 100,2,33,4,100
// 不会改变原数组
console.log(arr) // [100, 2, 33, 4, 100]

join

join()        数组转换为字符串,返回转换后的字符串(默认逗号分割,也可以自己指定分隔符),不会改变原数组

const arr = [100, 2, 33, 4, 100]
// 把数组转换为字符串,返回转换后的字符串,不会改变原数组
let str = arr.join('-')
console.log(str) // 100-2-33-4-100
// 不会改变原数组
console.log(arr) // [100, 2, 33, 4, 100]

concat

concat()        连接一个或多个数组,返回拼接后的新数组,不会改变原数组

const arr1 = [100, 2, 33, 4, 100]
const arr2 = [200, 201, 202]
// 连接一个或多个数组,返回连接后的新数组,不会改变原数组
const newArr = arr1.concat(arr2)
console.log(newArr) // [100, 2, 33, 4, 100, 200, 201, 202]
// 不会改变原数组
console.log(arr1) // [100, 2, 33, 4, 100]

slice

slice()        截取数组,截取不到末尾,返回截取后的新数组,不会改变原数组

const arr = [100, 2, 33, 4, 100]
// 截取数组,但是截取不到末尾,返回截取后的新数组
const newArr = arr.slice(3, 5)
console.log(newArr) // [4, 100]
// 如果只写一个参数,默认会截取它之后所有的(包含它)
console.log(arr.slice(1)) // [2, 33, 4, 100]
// 也可以接收一个负值
console.log(arr.slice(-2)) // [4, 100]
// 不会改变原数组
console.log(arr) // [100, 2, 33, 4, 100]

includes

includes()        数组中是否包含某一项,包含的话,返回true,不包含的话,返回false

const arr = [100, 2, 33, 4, 100]
// 查看数组中是否包含某一项,包含的话返回true,不包含则返回false
const newArr = arr.includes(100)
console.log(newArr) // true

every

every()        数组中的每一项是否都满足条件,只要有一项不满足,就返回false,如果都满足,返回true

const arr = [100, 2, 33, 4, 100]
// 数组中的每一项是否都满足条件,都满足返回true,只要有一项不满足,就返回false
let flag = arr.every(item => item > 5)
console.log(flag) // false

reduce

reduce((累计值,当前元素[,索引号][,源数组]) => {  },初始值)        累加器,返回函数累计处理的结果,经常用于求和

const arr = [100, 2, 33, 4, 100]
// 数组中的每一项是否都满足条件,都满足返回true,只要有一项不满足,就返回false
let res = arr.reduce((sum, item, index) => {
    return sum += item
}, 0)
console.log(res) // 239

splice

1. splice(开始索引,要删除的个数)        返回被删除的元素数组,会改变原数组

const arr = [100, 2, 33, 4]
// splice(开始索引,删除的个数)  返回被删除的元素
const newArr = arr.splice(0, 1)
console.log(newArr) // [100]
// 会改变原数组
console.log(arr) // [2, 33, 4]

2. splice(开始索引,0,要添加的元素)        返回的是空数组,会改变原数组

const arr = [100, 2, 33, 4]
// splice(开始索引,0,要添加的元素)   返回的是空数组
const newArr = arr.splice(4, 0, 5)
console.log(newArr) // []
// 会改变原数组
console.log(arr) // [100, 2, 33, 4, 5]

3. splice(第几个开始,1,替换的元素)        返回的是被替换的元素,会改变原数组

const arr = [100, 2, 33, 4]
// splice(开始索引,1,替换的元素)   返回的是被替换的元素数组
const newArr = arr.splice(3, 1, 444)
console.log(newArr) // [4]
// 会改变原数组
console.log(arr) // [100, 2, 33, 444]

find

find()        按照条件筛选元素,返回满足条件的元素,没有满足条件的元素则返回undefined。不会改变原数组

const arr = [100, 2, 33, 4]
// 找到满足条件的元素,返回满足条件的元素
const newArr = arr.find(item => {
    return item === 100
})
console.log(newArr) // 100
// 不会改变原数组
console.log(arr) // [100, 2, 33, 4]

findIndex

findIndex()        按照条件筛选元素,如果有则返回下标,如果没有,则返回-1。不会改变原数组

const arr = [100, 2, 33, 4]
// 找到满足条件的元素,返回下标,没有则返回-1
const newArr = arr.findIndex(item => {
    return item > 33
})
console.log(newArr) // 0
// 不会改变原数组
console.log(arr) // [100, 2, 33, 4]

entries

entries()        会返回带有键/值对的Array Iterator对象,不会改变原数组

const arr = ['张三', '李四', '王五', '赵六']
// 返回带有键/值对的Array Iterator对象
const newArr = arr.entries()
console.log(newArr) // Array Iterator {}
for (const iterator of newArr) {
    console.log(iterator) // [0, '张三'] [1, '李四'] [2, '王五'] [3, '赵六']
}
// 不会改变原数组
console.log(arr) // ['张三', '李四', '王五', '赵六']

flat

flat()           会把传入的数组进行扁平化处理,把多维数组的变成一维数组。不会改变原数组

const arr = [1, [2, [3, [4, [5]]]]]
// 不传参数,默认就拉平1层
const arr1 = arr.flat()
console.log(arr1) // [1, 2, Array(2)]
// 传入Infinity,不管内部多少层,都会拉平成一维数组 
const arr2 = arr.flat(Infinity)
console.log(arr2) // [1, 2, 3, 4, 5]

原文链接:https://blog.csdn.net/qq_52845451/article/details/127000745

最后修改:2023 年 10 月 30 日
如果觉得我的文章对你有用,请随意赞赏