一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情。
数组迭代-map()
// map() 产生一个由回调函数返回值组成元素的新数组
let arr = [111,222,333,444]
let newArr = arr.map(function(a){
console.log(a)
let num = a*100
return num
})
console.log(arr)
console.log(newArr)
// 简写
let newArr2 = arr.map(a => a * 100)
console.log(newArr2)
数组迭代-filter()
// filter():返回一个新数组。数组中的元素,在回调函数中返回值为true组成的当前项
let arr = [1,2,3,4,5,6,7,8,9]
// 取出所有3的倍数
let newArr = arr.filter(n => {
if(n % 3 == 0)
return 1
})
console.log(newArr)
数组迭代-forEach → 常用
// forEach():没有返回值,类似for循环
let arr = ['aaa','bbb','ccc','ddd']
//循环
let a = arr.forEach(n => {
console.log(n)
})
console.log(a)
// aaa
// bbb
// ccc
// ddd
//undefined -> forEach没有返回值
数组迭代-some
// some(): 类似someone。检测数组中是否存在满足条件的值,返回布尔类型
// 一旦当前项返回true,立即停止循环
const arr = [1,2,3,4,5,6,7,8,9]
// 数组中是否有7
let a = arr.some(n => {
if(n == 7){
return true
}
})
console.log(a)
// 简写
let b = arr.some(n => n == 7)
console.log(b)
数组迭代-every
//every():场景 : 判断数组中是否所有元素都满足条件
// 返回一个boolean值
// 它也具有停止循环的功能
const score = [60,88,62,81,99,67,85]
// 判断是全部及格
let a = score.every(n => n >= 60 )
console.log(a)
数组迭代-findIndex
// findIndex():获取某个元素下标
// 应用场景: 与 indexOf() 类似 . 但是findIndex一般用于对象数组
const arr = [
{name:'王五',age:40},
{name:'张三',age:22},
{name:'李四',age:18},
{name:'张三',age:30},
]
let a = arr.findIndex((value,index) => {
if(value.name == '张三')
return true
})
console.log(a)
// find():查元素
let b = arr.find(value => value.name == '李四')
console.log(b)
数组迭代-includes
// includes():用来判断一个数组是否包含一个指定的值
const arr = [111,222,333,444]
let a = arr.includes('bbb')
console.log(a) // false
let b = arr.includes(111)
console.log(b) // true
// 拓展 indexOf():同样参数是具体值,不是函数,返回索引值
let i = arr.indexOf('aaa')
console.log(i) // 查询不到,返回-1
数组迭代-reduce
// reduce():给每一个元素执行一次回调
// 应用场景:数组求和、求数组最大值
let arr = [-10,-20,-30,-40,-50,-60,-70,-80]
// previousValue(sum):上一次回调的返回值,默认是第一个元素
// value :当前元素值
// index:当前下标
/* let res = arr.reduce((sum,value,index)=>{
console.log(sum,value,index)
return sum+value
},0) */ // 这个语法遇到空数组会报错,加个0可以定义默认值
//求最大值
let res1 = arr.reduce((previousValue,value)=> {
if(previousValue>value)
return previousValue
else
return value
},-Infinity)
console.log(res1)