JS中一些高阶函数

ES6中for in 与 for of的区别

举例如下:数组y[“abc”,“cde”]
for x in y:x输出在y中的下标 0,1
for x of y :x输出在y中的对象 “abc”,“cde”

JS一些高阶函数
1. filter(过滤)

let newarray = Array.filter(function(n){
return n<100
})
(返回数组中所有小于100的数),注意这个函数内的返回值必须要是布尔值,根据布尔值在原数组基础上创建一个满足条件的新数组

2.map(映射)

let newarray = Array.map(function(n){
return n*2
})
(将数组中所有数字乘以二之后放进新数组中),这个函数的返回值会存在新数组中

3.reduce(虽然说名字是减少,但是其实是加法)

let newarray = Array.reduce(function(preValue,n){
return preValue+n
},0)
(在初始值的基础上将数组所有的值遍历相加),这个函数有两个参数,第一个参数是一个回调函数(回调函数内有两个参数,第一个是上一次运算结果的值,第二个参数是数组内遍历的每一个值),第二个参数是初始值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JavaScript,reduce()是一个高阶函数,用于对数组的元素进行累积操作。它接受一个回调函数作为参数,该回调函数可以对数组的每个元素进行操作,并返回一个累积值。reduce()方法的语法如下:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)。其,total表示累积值,currentValue表示当前元素的值,currentIndex表示当前元素的索引,arr表示原始数组,initialValue表示初始值(可选)。\[1\] 举个例子,如果我们有一个数组arr = \[1, 2, 3, 4, 5\],我们可以使用reduce()方法来计算数组所有元素的总和。代码如下: ``` var arr = \[1, 2, 3, 4, 5\]; var sum = arr.reduce(function(total, currentValue) { return total + currentValue; }, 0); console.log(sum); // 输出15 ``` 在上面的例子,初始值为0,回调函数将累积值total与当前元素的值currentValue相加,并返回新的累积值。最终,reduce()方法返回累积值,即15。\[2\] 除了计算数组元素的总和,reduce()方法还可以用于求取数组的最大值、最小值等操作。例如,我们可以使用reduce()方法来找到数组的最大值。代码如下: ``` var arr = \[1, 5, 8, 10, 15, 66, 65, 25, 48, 55\]; var max = arr.reduce(function(prev, cur) { return Math.max(prev, cur); }); console.log(max); // 输出66 ``` 在上面的例子,回调函数使用Math.max()函数来比较累积值prev和当前元素的值cur,返回较大的值作为新的累积值。最终,reduce()方法返回数组的最大值,即66。\[2\] 总结来说,reduce()是一个非常有用的高阶函数,可以对数组的元素进行累积操作,计算总和、求取最大值等。它可以简化代码,并提高代码的可读性和可维护性。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [JS的reduce()函数介绍](https://blog.csdn.net/qq_52855464/article/details/126004138)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [js 高阶函数之reduce](https://blog.csdn.net/qq_27391159/article/details/88739910)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值