1. concat()连接两个或者更多的数组,并且返回结果
const a = ["a","b","c"]
const b = [1,2,3,4]
const c = a.concat(b)
console.log(c) // ['a','b','c',1,2,3,4]
2.every() 判断数组是否所有的元素都满足条件 ( 逻辑与&& )。
语法特点 :
2.1 循环执行次数 != 数组长度
2.2 回调函数内部return作用
(1)return true : 循环继续。 当前元素满足条件,继续判断. 如果循环执行完毕还是true,则every返回值就是true
(2)return false : 循环结束。当前元素不满足条件。 every的返回值也是false
2.3 every本身返回值作用
return true : 全部元素都满足条件
return false : 有元素不满足
function judge(element,index,array){
return(element>=10)
}
const passed = [12,5,8,134,55].every(judge)
console.log(passed) //false
3. filter()筛选数组,应用场景: 筛选数组,将符合条件的元素放入新数组中
filter方法特点
(1) 回调函数执行次数 == 数组长度
(2) 回调函数内部的return
* return true : 符合筛选条件,放入新数组中
* return false : 不符合筛选条件,不放入新数组中
(3) filter方法的返回值
* 返回筛选之后的新数组
function arr(element,index){
return (element >=10)
}
const array = [12,34,56,7,44,77,11,10,9]
const newarray = array.filter(arr)
console.log(newarray) //[12, 34, 56, 44, 77, 11, 10]
4. forEach()数组forEach方法作用: 遍历数组,应用场景和for(let i=0;i<arr.length;i++){} 功能一致
forEach方法特点
(1) 回调函数执行次数 == 数组长度
(2) 回调函数内部的return
* 没有返回值
(3) forEach方法的返回值
* 没有返回值
let num = [7,8,9]
num.forEach((value)=>{
console.log(value) // 7 8 9
})
5. indexOf()搜索数组中的元素,并返回它的所在位置。如果找不到,返回-1 代表没有此项
const index = [14,23,45,56,78,2]
const arr = index.indexOf(9)
console.log(arr) // -1
6. join()方法用于把数组中的所有元素转换一个字符串
const arr = ['千玺','喜欢','梦迪迪']
const newarray = arr.join('')
console.log(newarray) //千玺喜欢梦迪迪
7. map ()方法遍历数组 也可以处理数据并且返回一个新的数组
const arr = ['千玺','王源','王俊凯']
arr.map((item,index)=>{
console.log(item) // 得到数组元素 千玺 王源 王俊凯
console.log(index) // 得到下标 0 1 2
})
const newarr = arr.map((item,index)=>{
return item + '喜欢梦迪迪'
})
console.log(newarr) //['千玺喜欢梦迪迪', '王源喜欢梦迪迪', '王俊凯喜欢梦迪迪']
let arr = [ 88,90,100,20,50 ]
//完整写法
/* let res = arr.map( (item,index) => {
return item*0.8
} ) */
//箭头函数如果形参只有一个可以省略小括号, 如果函数体只有一行可以省略大括号(必须省略return)
let res = arr.map( item=>item*0.8 )
console.log( res )
8. pop()删除数组中最后一个元素
const arr = [1,2,3,4,5,6]
arr.pop()
console.log(arr) // [1,2,3,4,5]
9. splice()删除指定的元素 也可以加元素
语法:arr.splice(起始位置,删除几个元素)
const arr = [10,20,30,45,67]
// 删除
arr.splice(1,1)
console.log(arr) // [10, 30, 45, 67]
// 添加并且替换
arr.splice(1,2,'千玺','王源')
console.log(arr) //[10, '千玺', '王源', 67]
10. push()方法将一个或者多个元素添加到数组的末尾,并且返回该数组的新长度
const arr = ['千玺','王源','王俊凯',].push('梦迪迪')
console.log(arr) // 4
11. reverse()翻转数组的元素
const arr = [1,2,3,4,5,6]
const newarr = arr.reverse()
console.log(newarr) //[6, 5, 4, 3, 2, 1]
12. sort()对数组元素进行排序 a-b是从小到大 b-a是从大到小
const arr = [3,4,6,2,9,1]
let newarr = arr.sort((a,b)=>{
return a-b // 从小到大
})
console.log(newarr) //[1, 2, 3, 4, 6, 9]
let newarray = arr.sort((a,b)=>{
return b-a // 从大到小
})
console.log(newarray) // [9, 6, 4, 3, 2, 1]
13. reduce()为每一个元素执行一次回调,并最终返回最后一次结果
经典应用: 求数组累加和 求和
/* 第一个参数:回调 (sum,value,index)=>{}
sum : 累加和变量
value:当前元素
index: 当前下标
return : 下一次回调sum的值
第二个参数: sum初始值
* 如果不传,sum默认是第一个元素值
* 一般要传0, 如果不传空数组的话reduce直接报错 */
let arr = [12, 34, 56, 77, 97]
let res = arr.reduce((sum, value) => {
return sum + value
}, 0)
console.log(res) //276
14. findIndex()找元素下标
return true : 找到了,循环结束。 此时findIn是当前元素下标
return false : 没找到,循环继续。 如果执行完毕还找不到,最终返回固定值-1
findIndex本身返回值作用:return -1 : 没有,return 下标 : 有
const arr = [
{name:'千玺',age:22,},
{name:'王源',age:21,},
{name:'王俊凯',age:23,}
]
let res = arr.findIndex((item)=>{
return item.name=='王源'
})
console.log(res) // 1
15. Set()数组去重
(1)数据类型 Set : 集合
* Set相当于是数组类型, 和数组Array唯一的区别是不能存储重复元素
(2)场景 : 数组去重
let newArr = [ ...new Set(需要去重的数组) ]
const arr = [20,30,40,20,30,50,60]
console.log(arr) //[20, 30, 40, 20, 30, 50, 60]
// 创建Set 去除数组重复元素
const set = new Set(arr)
console.log(set) // {20, 30, 40, 50, 60}
// 把set变成真数组
const newArr = [...set]
//经典面试题: 一行代码实现数组去重
const newArr1 = [...new Set(arr)]
console.log(newArr1) // [20, 30, 40, 50, 60]