一、改变原数组的数组方法
1.push() 添加 末尾添加 即数组名.push(数据)
let arr = [1, 4, 5, 8, 7]
res = arr.push(6)
console.log(res);
[6]
//res返回数组的长度,arr返回数组的数据
console.log(arr);
[1, 4, 5, 8, 7]
2.pop() 删除 末尾删除数组数据 即 数组名.pop()
let arr = [1, 4, 5, 8, 9]
res = arr.pop();
//res 返回的是被删除的数据
console.log(res);
[9]
//arr 返回的是删除后的数组的数据
console.log(arr);
[1, 4, 5, 8]
3.unshift () 添加 头部添加数据 即 数组名.unshfit(数据)
let arr = [1, 4, 5, 8, 9]
res = arr.unshift(3)
//res 返回的是添加完的数据长度 [6]
console.log(res);
//arr 为添加完的数据 [3,1,4,5,8,9]
console.log(arr);
4.shift () 删除 头部删除数据 即 数组名.shift()
let arr = [1, 4, 5, 8, 9]
res = arr.shift()
//res 返回的是被删除的数据 [1]
console.log(res);
//arr 为删除完的数据 [4,5,8,9]
console.log(arr);
5.reverse () 翻转数组 即 数组名.reverse()
let arr = [1, 4, 5, 8, 9]
res = arr.reverse()
//res 返回的是被翻转后的数据 [9, 8, 5, 4, 1]
console.log(res);
//arr 返回的是被翻转后的数据 [9, 8, 5, 4, 1]
console.log(arr);
6. sort () 排序
//(1)数组名.sort() 排序 从小到大正常排序
let arr = [1, 4, 5, 8, 9]
arr.sort()
//arr 返回的是从小到大排序后的数据 [1, 4, 5, 8, 9]
console.log(arr);
//(2)arr 返回的是从小到大排序后的数据 [1, 4, 5, 8, 9]
arr.sort((a, b) => {
return (a - b)
})
console.log(arr);
//(3) arr 返回的是从大到小排序后的数据 [9, 8, 5, 4, 1]
arr.sort((a, b) => {
return (b - a)
})
console.log(arr);
7.splice() 截取数组
//(1)数组名.splice(开始索引,截取多少个) 截取数组
let arr = [1, 4, 5, 8, 9]
let res = []
res = arr.splice(2, 2)
//res 截取的数据 [5,8]
console.log(res);
//arr 返回 截取完的数组 [1, 4, 9]
console.log(arr);
// (2)数组名.splice(开始索引,多少个,插入的数据)
let arr = [1, 4, 5, 8, 9]
let res = []
res = arr.splice(2, 2, 88)
//res 截取的数据 [5,8]
console.log(res);
//arr 返回 截取完插入后的数组 [1, 4,88, 9]
console.log(arr);
二、不改变原数组的数组方法
1.concat () 合并数组 即 数组名.concat(数据)
let arr = [1, 4, 5, 8, 9];
let res = [10, 40];
let brr = []
brr = arr.concat(res)
// brr 返回拼接后的数组 [1, 4, 5, 8, 9, 10, 40]
console.log(brr);
// arr 返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
2.join() 数组转字符串 即 数组名.join(‘连接符’)
let arr = [1, 4, 5, 8, 9];
res = arr.join("-")
// res 1-4-5-8-9
console.log(res);
//arr 返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
3.slice()截取数组的一部分数据 即 数组名.slice( 开始索引, 结束索引)
let arr = [1, 4, 5, 8, 9];
res = arr.slice(1, 3)
//注意 包前不好后 包含开始索引不包含结束索引
//res 返回 截取的数据 [4, 5]
console.log(res);
//arr 返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
4.indexOf 从左检查数组中有没有这个数值
//就是检查这个数组中有没有该数据
//(1) 数组名.indexOf( 要查询的数据)
let arr = [1, 4, 5, 8, 9];
res = arr.indexOf(7)
// res 返回 没有返回 -1
console.log(res);
//tes 返回该数据第一次出现的索引
tes = arr.indexOf(5)
console.log(tes);
//返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
// (2) 数组名.indexOf( 要查询的数据, 开始索引)
let arr = [1, 4, 5, 8, 9];
res = arr.indexOf(1, 2)
// res 返回 没有返回 -1
console.log(res);
//tes 返回该数据第一次出现的索引
tes = arr.indexOf(1, 0)
console.log(tes);
//返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
5.lastIndexOf 从右检查数组中有没有这个数值
//就是检查这个数组中有没有该数据
//(1) 数组名.lastIndexOf( 要查询的数据)
let arr = [1, 4, 5, 8, 9];
res = arr.lastIndexOf(7)
// res 返回 没有返回 -1
console.log(res);
//tes 返回该数据第一次出现的索引
tes = arr.lastIndexOf(5)
console.log(tes);
//返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
// (2) 数组名.lastIndexOf( 要查询的数据, 开始索引)
let arr = [1, 4, 5, 8, 9];
res = arr.lastIndexOf(1, 2)
// res 返回 没有返回 -1
console.log(res);
//tes 返回该数据第一次出现的索引
tes = arr.lastIndexOf(1, 0)
console.log(tes);
//返回原数组 [1, 4, 5, 8, 9]
console.log(arr);
三、Es6新增数组方法
1.forEach() 用来循环遍历的 for
let arr = [1, 4, 5, 8, 9];
// console.log(arr);
let res = arr.forEach((item, index, arr) => {
console.log(item, index, arr);
})
//返回结果如下:
1 0(5)[1, 4, 5, 8, 9]
4 1(5)[1, 4, 5, 8, 9]
5 2(5)[1, 4, 5, 8, 9]
8 3(5)[1, 4, 5, 8, 9]
9 4(5)[1, 4, 5, 8, 9]
//item : 这个表示的是数组中的每一项
// index : 这个表示的是每一项对应的索引
// arr : 这个表示的是原数组
2.map 映射数组的
let arr = [1, 4, 5, 8, 9];
//arr 原数组
console.log(arr);
let res = arr.map((item) => {
return item * 10
})
//是一个数组 一个映射完毕的数组;这个数组合原数组长度一样
//res [10, 40, 50, 80, 90]
console.log(res);
3.filter 过滤数组
let arr = [1, 4, 5, 8, 9];
console.log(arr);
//如果有就是过滤(筛选)出来的数据 保存在一个数组中;如果没有返回一个空数组
let res = arr.filter((item) => {
return item > 3
})
//res 返回结果 [4, 5, 8, 9]
console.log(res);
let tes = arr.filter((item) => {
return item > 10
})
//res 返回结果 []
console.log(tes);
4.every 判断数组是不是满足所有条件
//用来判断数组中是不是 每一个 都满足条件
let arr = [1, 4, 5, 8, 9];
let res = arr.every((item) => {
return item > 0
})
//只有所有的都满足条件返回的是true
console.log(res);
let tes = arr.every((item) => {
return item < 3
})
//只要有一个不满足返回的就是false
console.log(tes);
5.some() 数组中有没有满足条件的
//用来判断数组中是不是 每一个 都满足条件
let arr = [1, 4, 5, 8, 9];
let res = arr.some((item) => {
return item > 2
})
//只有有一个满足条件返回的是true
console.log(res);
let tes = arr.some((item) => {
return item < 0
})
//只要都不满足返回的就是false
console.log(tes);
6.find()用来获取数组中满足条件的第一个数据
let arr = [1, 4, 5, 8, 9];
let res = arr.find((item) => {
return item > 8
})
// res 9 满足条件的第一个数据;
console.log(res);
let tes = arr.find((item) => {
return item < 0
})
//没有就是undefined
console.log(tes);
7.findindex 方法返回数组中满足提供的测试函数的第一个元素的索引。
let arr = [1, 4, 5, 8, 9];
let res = arr.findIndex((item) => {
return item > 5
})
//返回复合该数据的个数
console.log(res);
let tes = arr.findIndex((item) => {
return item < 0
})
//若没有找到对应元素则返回 -1
console.log(tes);
8.reduce()叠加后的效果
let arr = [1, 4, 5, 8, 9];
//prev :一开始就是初始值 当第一次有了结果以后;这个值就是第一次的结果
//next :下一个值
let res = arr.reduce((prev, next) => {
return prev + next
}, 1)
// 就是叠加后的结果 28
console.log(res);