关于JS的内存问题:
问各位大神一个问题:如下是我的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="{CHARSET}">
<title></title>
</head>
<body>
<script type="text/javascript">
let arr=;
let res=arr.reduce((tmp,item,index)=>{
console.log(index) //1,2,3
console.log(tmp) //88,187,298
if(index<(arr.length-1)){
return tmp+item;
}else{
return (tmp+item)/arr.length;
//130
}
});
alert(res);
</script>
</body>
</html>
比较奇怪的是为什么index 只能输出到3,而不是4, 我的数组里面是4个元素,所以理论上按照运行的逻辑,应该是4才对???
而且研究tmp临时的数据,也发现了只有计算到第3个元素,
不过最后的输出的结果却是对的?
能不能解释一下,谢谢!感激不尽。{:5_109:} {:10_249:}自己给自己顶一下 reduce方法定义都是取到指定值的前一位哦 不二如是 发表于 2019-5-20 11:54
reduce方法定义都是取到指定值的前一位哦
好的 我明白了
他的大概制度应该是reduce只是负责前面的三个元素的抓取(最后一位默认导入)
按照你的思路,我写了代码,试了一下,还真的是这个结果。
<!DOCTYPE html>
<html>
<head>
<meta charset="{CHARSET}">
<title></title>
</head>
<body>
<script type="text/javascript">
let arr=;
let res=arr.reduce((tmp,item,index)=>{
console.log(index) //1,2,3
console.log(tmp) //88,187,298
console.log(item) //88,99,111,222
if(index<(arr.length-1)){
return tmp+item;
}else{
return (tmp+item)/arr.length;
//130
}
});
alert(res);
</script>
</body>
</html>
页:
[1]