代码拉取完成,页面将自动刷新
同步操作将从 高翔/大前端 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<!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>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。