草庐IT

MPI_Reduce

全部标签

javascript - 理解 Eloquent Javascript 的 Reduce 函数

在EloquentJavascript中,作者要求读者编写一个函数countZeroes,它以一个数字数组作为参数并返回出现在这是另一个使用reduce函数的例子。我知道reduce函数的概念是获取一个数组并将其转换为单个值。三元运算符的作用是函数的基本部分。我不知道counter函数的参数来自哪里。摘自本书:functioncountZeroes(array){functioncounter(total,element){//Wherearetheparametervaluescomingfrom?returntotal+(element===0?1:0);}returnreduce

javascript - 为什么我的基于 reduce 的平均函数返回 NaN?

尝试获取数组的平均值。Array.prototype.average=function(){varsum=0;this.reduce(function(a,b){sum=a+b;});returnsum/this.length;};[2,15,7].average();为什么average函数调用返回NaN? 最佳答案 您的程序没有运行,因为a具有前一个函数调用的累积值。第一次,将使用数组的前两个值。所以sum将变成17(2+15)。由于您没有从该函数返回任何内容,因此默认情况下将返回undefined,并将在下一次调用中将其用作a

JavaScript reduce 在对象数组上返回对象

我有一个对象数组,比方说[{x:2,y:3},{x:5,y:4}]我调用reduce((c,n)=>c.y+n.y);就可以了。它显然会返回7。但是,如果数组包含单个对象,假设[{x:2,y:4}]相同的reduce调用将返回对象本身{x:2,y:4}。这是正常行为吗?之后我是否有义务检查结果是否为对象而不是数字? 最佳答案 是的,这是reduce的正常行为当您没有为累加器传递初始值时(您总是应该传递)。除了具有两个对象的数组之外,您的代码无法在任何数组上按预期工作。去吧arr.reduce((acc,el)=>acc+el.y,0

javascript - 调用 reduce 对对象数组求和返回 NaN

我有类似的代码:vartemp=[{"y":32},{"y":60},{"y":60}];varreduced=temp.reduce(function(a,b){returna.y+b.y;});console.log(reduced);//PrintsNaN为什么打印NaN而不是152? 最佳答案 您可以使用一个起始值,然后只从数组中添加一个值。vartemp=[{"name":"Agency","y":32,"drilldown":{"name":"Agency","categories":["APPS&SI","ERS"],

javascript - 一系列 promise 如何与 reduce 一起工作?

我正在阅读这篇文章HERE,它讲述了如何使用reducewithpromises,最后显示了以下代码片段:consttasks=getTaskArray();returntasks.reduce((promiseChain,currentTask)=>{returnpromiseChain.then(chainResults=>currentTask.then(currentResult=>[...chainResults,currentResult]));},Promise.resolve([])).then(arrayOfResults=>{//Dosomethingwithall

javascript - 使用 JavaScript Reduce 生成对象

我有一个数字数组[22,44,12,9,4,23,1,11,10,5,2,123],我需要使用reduce来创建一个看起来像这样的对象:{numbersLessThanTen:[...],numbersGreaterThanTen:[...]}我有解决方案,如下所示:constlistOfNumbers=[22,44,12,9,4,23,1,11,10,5,2,123];constgroupedBySize=listOfNumbers.reduce((total,next)=>{constless=total.numbersLessThanTen||[];constmore=total

javascript - 如何编写自己的 `reduce` 函数?

我想自己写reduce。但是在过去的4个小时里,我做不到。vara=[10,21,13,56];functionadd(a,b){returna+b}functionfoo(a,b){returna.concat(b)}Array.prototype.reduce2=function(){//Idonotunderstandhowtohandlethefunctionoftheinlet//IknowthatIshouldusearguments,butIdon'tknowhowmanyargumentstherewillbevarresult=0;for(vari=0;i是的,我知道

javascript - 下划线 _.reduce 说明?

我刚刚开始更深入地探索JavaScriptUnderscore库,只是想澄清一下我的想法_.reduce()(也称为inject和foldl)确实是正确的。我的问题是:下面是对的吗?当_.reduce([1,2,3,4,5],function(memo,num){returnmemo+num;},5);被调用时,会发生以下情况:memo从5开始memo+list[0]=memo=6memo+list[1]=memo=8memo+list[2]=memo=11memo+list[3]=memo=15memo+list[4]=memo=20这就是ran函数返回20的原因。那正确吗?因此_.

javascript - `map()` 和 `reduce()` 等高阶函数如何接收数据?

我现在正在尝试编写自己的高阶函数,我想知道像map()和reduce()这样的函数如何访问它们所在的数组被应用于。不仅适用于数组,还适用于任何高阶函数,例如toString()或toLowerCase()。array.map()^^^//HowdoIgetthisdatawhenIamwritingmyownhigherorderfunction?array.myOwnFunction(/*data???*/)我希望这是有道理的。我确信答案已经在那里,但我很难知道要搜索什么才能找到信息。 最佳答案 您可以将它添加到Array原型(p

javascript - 如何访问reduce中的第零个元素以计算数组中的重复次数

Node学校一时兴起,我尝试使用reduce来计算字符串在数组中重复的次数。varfruits=["Apple","Banana","Apple","Durian","Durian","Durian"],obj={};fruits.reduce(function(prev,curr,index,arr){obj[curr]?obj[curr]++:obj[curr]=1;});console.log(obj);//{Banana:1,Apple:1,Durian:3}有点在工作。出于某种原因,reduce似乎跳过了第一个元素。我不知道为什么。第一次遍历数组,index为1。我尝试加入一