js基础-常用的高阶函数

forEach

遍历数组中的每一项,为每个元素调用制定的函数

  • 是es5 的方法 (IE9 以下不可用)
  • 可替代 for 循环,但是 forEach 不能中断循环(不能使用break 或者 return 语句)

这里简单提一下 for in 和 for of

  • for of 是es6方法 可以代替 forEach方法
let obj1 = ['judy', 'nick']
for (let key in obj1) {
    console.log(key) // 0 1
}

let obj = {name: 'judy', age: 18}
for (let key in obj) {
    console.log(key) // name age
}
let obj = ['judy', 'nick']
for (let value of obj) {
    console.log(value) // judy nick
}

for of 不能用在普通的对象上,可以使用Object.keys() 按照对象所拥有的属性进行
let obj = {name: 'judy', age: 18}
for (var key of Object.keys(obj)) {
  console.log(key + ": " + obj[key]);
  // name: judy age: 18
}

重点区别一下 map filter reduce

map

遍历数组里的每一项,得到一个新的数组, 新数组长度 = 原长度

let result = [1, 2, 3].map(item => {
    return item * 2
})
console.log('result2:', result) // [ 2, 4, 6 ]

filter

根据某一规则过滤数组中符合要求的项,过滤之后的数组长度 <= 原长度

let result = [1, 2, 3, 4].filter(item => {
    return item % 2 === 0
})
console.log('result1:', result) // [2, 4]

reduce

遍历数组中的每一项组合成一个新结果,这个结果可以是任意类型

let num = 1
let result = [1, 2, 3].reduce((total, item) => {
    return total + item
}, num)
console.log('result:', result) // 7

some

是数组的逻辑判定

  • 根据指定函数 对数组元素进行判定
  • 遍历过程中,判定函数第一次返回true 则停止遍历,返回true;如果一直没有元素返回true,则一直遍历,直到结束,返回false
let arr = [1,2,3,4]
arr.some(function (item) {
    return item > 5
})
// false

arr.some(function (item) {
    return item % 2 === 0
})
// true

every

是数组的逻辑判定

  • 根据指定函数 对数组元素进行判定
  • 遍历过程中,判定函数第一次返回false 则停止遍历,返回false;如果一直没有元素返回false,则一直遍历,直到结束,返回挥true
let arr = [1,2,3,4]
arr.every(function (item) {
    return item < 5   
})
// true

arr.every(function (item) {
    return item % 2 === 0
})
// false
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值