Javascript遍历数组,找到3的倍数并给出数字
我想查看数组并找到3的最小倍数,然后返回值或返回false 我已经按照数字的大小对数组进行了排序,然后使用了模运算符 这就是我所拥有的,但它似乎不起作用。这是我的密码:Javascript遍历数组,找到3的倍数并给出数字,javascript,arrays,sorting,modulo,Javascript,Arrays,Sorting,Modulo,我想查看数组并找到3的最小倍数,然后返回值或返回false 我已经按照数字的大小对数组进行了排序,然后使用了模运算符 这就是我所拥有的,但它似乎不起作用。这是我的密码: function firstMultipleOf3(numbers) { numbers.sort(function(a, b){return a - b}); console.log(numbers); for (var i = 0 ; i < firstMultipleOf3.length ;
function firstMultipleOf3(numbers) {
numbers.sort(function(a, b){return a - b});
console.log(numbers);
for (var i = 0 ; i < firstMultipleOf3.length ; i++) {
if (firstMultipleOf3[i] % 3 === 0) {
return [i];
} else {
return false;
}
}
}
console.log(firstMultipleOf3([52,98,42,17,33,24])); // 42
console.log(firstMultipleOf3([38,52,34,13,41])); // false
函数firstMultipleOf3(数字){
sort(函数(a,b){返回a-b});
控制台日志(编号);
对于(变量i=0;i
如果没有匹配的元素,则要返回false。因此,它需要在循环之外:
for (var i = 0; i < numbers.length; i++)
if (numbers[i] % 3 === 0)
return numbers[i];
return false;
for(变量i=0;i
我将如何做到这一点:
function firstMultipleOf3(numbers) {
let minimum = false;
for(const n of numbers)
if(!(n % 3) && (!minimum || n < minimum))
minimum = n;
return minimum;
}
函数firstMultipleOf3(数字){
设最小值=false;
for(数量常数)
如果(!(n%3)和(!最小值| | n<最小值))
最小值=n;
返回最小值;
}
const number=[52,98,42,17,33,24];
const find=numbers=>numbers.sort((a,b)=>a-b).find(n=>n%3==0)| | false;
所选常量=查找(数字)
console.log(选中);
log(find([38,52,34,13,41])代码>在for循环中,测试使用的是函数名而不是数组名(数字)。此外,您正在if条件下执行此操作。
通过示例输出,您需要的是数字[i],而不是索引本身。
- 创建一个泛型函数并命名它
- 使用
.Sort()
- 使用
.find()
在数组中查找传递值的倍数。此方法将返回通过回调函数或null
实现的测试的值
- 使用
|
在case中显式返回false
。find()
返回未定义的
演示:
让findMultipe=(a,m)=>a.sort((a,b)=>(a-b))
.find((n)=>(n%m==0))| | false;
log(findMultipe([52,98,42,17,33,24,3]);
log(findMultipe([38,52,34,13,41],3))
[52,98,42,17,33,24].sort().find(n=>n%3==0)
@daveArray#sort
不带回调对数组中的值进行排序,就像它们是字符串一样[3111,3,2,33]。sort()/[111,2,3,33]
等于1
(因为在这种情况下,函数只接受一个参数)。我想你的意思是写数字。改为写长度。试着避免(a
它大部分时间都能工作,但可能以意外的方式失败,并导致难以调试的问题:)。。只需使用(a-b)
@Keith谢谢您的输入。我将牢记:注意,如果你认为<代码> 0 /代码>是每一个数字的倍数,如果你的数组包含一个<代码> 0 /代码>,穆罕默德的答案仍然会返回<代码> false <代码>。这是因为将计算0 | | false
,并且0
是假值。