如何将此函数从Ruby转换为JavaScript,使其看起来相同
我用Ruby编写了一个简单的函数,它接受一个数字并返回该数字之前(包括该数字)所有3和5的倍数之和 例如: findSum(5)返回8(因为3+5) findSum(10)返回33(因为3+5+6+9+10) findSum(15)返回60,以此类推:如何将此函数从Ruby转换为JavaScript,使其看起来相同,javascript,ruby,Javascript,Ruby,我用Ruby编写了一个简单的函数,它接受一个数字并返回该数字之前(包括该数字)所有3和5的倍数之和 例如: findSum(5)返回8(因为3+5) findSum(10)返回33(因为3+5+6+9+10) findSum(15)返回60,以此类推: def findSum(num) (1..num).select { |n| n % 3 == 0 || n % 5 == 0 }.reduce { |sum, n| sum += n } end 您知道如何将Ruby函数“复制”和“转换”
def findSum(num)
(1..num).select { |n| n % 3 == 0 || n % 5 == 0 }.reduce { |sum, n| sum += n }
end
您知道如何将Ruby函数“复制”和“转换”为JavaScript函数,使其看起来几乎相同吗
我知道JavaScript可以用很多不同的方法来解决这个问题,但现在作为一个初学者,我可能无法理解其中的大部分,我只需要看看用JavaScript编写上述相同函数的最相似的方法。没有那么好的方法来创建从1到n的数字范围,但这里有一个选项:
Array.from({ length: num }, (_, i) => i + 1)
然后,选择将要使用的.filter
,而不是。然后选择。reduce
以两种语言存在
函数findSum(num){
返回数组。from({length:num},({,i)=>i+1)
.filter(n=>n%3==0 | | n%5==0)
.减少((总和,n)=>总和+=n)
}
控制台日志(findSum(5))
控制台日志(findSum(10))
console.log(findSum(15))