1 Star 0 Fork 3

AlfaLee/大前端

forked from 高翔/大前端 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
reduce.html 2.15 KB
一键复制 编辑 原始数据 按行查看 历史
高翔 提交于 2022-02-22 10:36 . 丰富笔记内容
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<title>reduce</title>
</head>
<body>
reduce语法:
array.reduce(function(prev,cur,index,arr){
//some code
},init)
-- prev 必需。首次执行时:如果有init,则首次返回init,如果没有init,则首次返回arr的第一项,后续返回上一次调用回调时返回值;
-- cur 必需。当前正在处理的数组元素,且跟随索引index;
-- index 可选。当前正在处理的数组元素索引,若提供init值,初始索引为0,否则为1;
-- init 可选。表示初始值(可省略)
-- arr 可选。 原数组
reduceRight:reduce()方法从数组第一项开始遍历到最后一项。而 reduceRight()从最后一项开始遍历至第一项。除此之外,这两个方法没什么区别
</body>
<script type="text/javascript">
var arr = [11, 22, 33, 44, 22,[55,66,[77]]];
// 1.求和
var arrSum = [11, 22, 33, 44, 22];
var sum = arrSum.reduce((prev, cur, index) => {
console.log("prev:", prev)
console.log("cur:", cur)
console.log("_________:", index)
return prev + cur
});
console.log(sum);
// 2.计算数组中每个元素出现的次数
var obj = arr.reduce((prev, cur) => {
if (cur in prev) {
prev[cur]++
} else {
prev[cur] = 1
}
return prev
}, {})
console.log(obj)
// 3.数组偏平化 Array.flat(Infinity)
const newArr = (arr) => {
return arr.reduce((prev, cur) => {
return prev.concat(Array.isArray(cur) ? newArr(cur) : cur)
}, [])
}
console.log(newArr(arr))
//4.数组去重
var resArr = arr.reduce((prev, cur) => {
if (!prev.includes(cur)) {
return prev.concat(cur)
}
return prev
}, [])
console.log("数组去重:", resArr)
console.log(Math.max.bind(null, ...arr)())
// 类数组转换数组:Array.prototype.slice.call(类数组)
var arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
console.log("slice.call:", Array.prototype.slice.call(arrayLike))
console.log("es6方法,Array.from:", Array.from(arrayLike))
</script>
</html>
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/alfalee_admin/big-front-end.git
[email protected]:alfalee_admin/big-front-end.git
alfalee_admin
big-front-end
大前端
master

搜索帮助