创建一个名为mulitples0f的函数
它将接受两个参数,第一个将是数字数组,第二个将是数字。该函数应返回一个新数组,该数组由参数数组中的每个数字组成,该数字是参数编号的倍数。因此,multiplesOf([5,6,7,8,9,10],3)将返回[6,9]
function multiplesOf(numbers) {
var multiples = numbers[0];
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] % multiples === 0) {
multiples = numbers[i];
}
}
return multiples;
}
console.log(multiplesOf([4, 5, 6, 7, 8], 2));
说函数是在jsbin帮助中定义的
最佳答案
您的代码有一些问题。目前multiplesOf
仅接受1个应为2的参数,即numbers
数组和单个number
另一个问题是,您没有保留找到的倍数的数组,而是将变量设置为找到的倍数,并且在找到新的倍数时被覆盖(从而使您在数组中找到最后的倍数) )。相反,您想将multiples
变量更改为数组。这样,您可以push
在该数组中找到的每一个倍数。
请参见下面的工作示例(有关更改,请阅读代码注释):
function multiplesOf(numbers, number) { // add second argument
var multiples = []; // change to array (so that we can store multiple numbers - not just one multiple)
for (var i = 0; i < numbers.length; i++) {
if (numbers[i] % number === 0) { // divide by the number
multiples.push(numbers[i]); // add the current multiple found to the multiples array
}
}
return multiples;
}
console.log(multiplesOf([4, 5, 6, 7, 8], 2)); // Output: [4, 6, 8]
或者,如果您愿意使用高阶函数,也可以使用
.filter
来获取新数组。 .filter
接受一个函数作为其第一个参数,该函数将element
作为其参数。它会将您返回true
的任何元素保留在新数组中:const multiplesOf = (numbers, number) => numbers.filter(n => !(n % number));
console.log(multiplesOf([4, 5, 6, 7, 8], 2)); // [4, 6, 8]
关于javascript - Javascript函数,用于查找数字的倍数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54193060/