为了账号安全,请及时绑定邮箱和手机立即绑定

求大佬指点哈!算法题:var a=[1,5,3,2,6,1,4],写一个方法能把数组a处理成[1,6,9,11,17,18,22]。各位有什么建议?

求大佬指点哈!算法题:var a=[1,5,3,2,6,1,4],写一个方法能把数组a处理成[1,6,9,11,17,18,22]。各位有什么建议?

慕姐4208626 2019-07-27 09:38:32
vara=[1,5,3,2,6,1,4],写一个方法能把数组a处理成[1,6,9,11,17,18,22]。相关代码//请把代码文本粘贴到下方(请勿用图片代替代码)在线急等!!!!
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

functionarrSum(array){
varsum=0;
returnarray.map(item=>{
sum+=item;
returnsum;
});
}
                            
查看完整回答
反对 回复 2019-07-27
?
Qyouu

TA贡献1786条经验 获得超11个赞

关于reduce的用法,有两种形式:
如果只传一个迭代函数作为参数,那么它会将数组的第一个值作为初始值,从数组的第二项开始迭代,例如:
[1,2,3].reduce((v1,v2)=>{
console.log(v1,v2);
returnv1+v2;
});
迭代函数只会执行两次,第一次输出:12,第二次输出:33
除了迭代函数外,我们还可以传入一个初始值,作为迭代函数的初始值,函数会从数组第一项开始迭代,例如:
[1,2,3].reduce((v1,v2)=>{
console.log(v1,v2);
returnv1+v2;
},0);
迭代函数会执行3次,第一次输出:01,第二次输出:12,第三次输出:33
所以本例中,最好采用第二种方式,传入初始值[]
[1,5,3,2,6,1,4].reduce((acc,value)=>{
constlastValue=acc[acc.length-1]||0;
acc.push(lastValue+value);
returnacc;
},[]);
这样既不会修改原数组,也无需重复构建Array
                            
查看完整回答
反对 回复 2019-07-27
  • 2 回答
  • 0 关注
  • 358 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信