根据条件语句的结果,使用.push()将变量插入到数组中

问题描述 投票:0回答:4

我有一个脚本,其中包含一个生成数字0-9的for循环。该脚本还包括一个函数,用于检查for循环生成的数字是否可被3或5整除。如果它们是可整除的(例如9可被3整除),则if / else语句返回true,如果它们是不可分割,条件语句返回false。

我想要实现的是,当条件语句返回true时,应该将数字添加到空数组中。

在这种情况下,期望的结果是:

var myArray = [0, 3, 5, 6, 9];

这是我目前的代码:

var isDivisibleArray = [];

for(var i = 0; i < 10; i++) {
    isMultiple(i);
}

function isMultiple() {

    var isMultipleOf3 = i % 3;
    var isMultipleOf5 = i % 5;

    if(isMultipleOf3 === 0 || isMultipleOf5 === 0) {
        return true;
    }

    else {
        return false;
    }

}

isMultiple();

我使用模数运算符来确定一个数字是否可以用3或5整除,因为如果x%3 = 0,x可以用3整除,例如。

我也做了一些实验。如果我这样做是for循环,我可以设法使用警报打印结果:

for(var i = 0; i < 10; i++) {
    alert(isMultiple(i));
}

结果是T,F,F,T,F,T,T,F,F,T。

我也在条件语句中尝试了这种方法:

if(isMultipleOf3 === 0 || isMultipleOf5 === 0) {
    isDivisibleArray.push(i);
}

这没有成功。非常感谢所有帮助!

javascript arrays for-loop if-statement
4个回答
1
投票

这应该工作:

var isDivisibleArray = [];

for(var i = 0; i < 10; i++) {
    if(isMultiple(i)) {
      isDivisibleArray.push(i);
    }
}

function isMultiple(i) {
    return i % 5 === 0 || i % 3 === 0
}

0
投票

不需要单独的功能。此外:

if(isMultipleOf3 === 0 || isMultipleOf5 === 0) {
    return true;
}

else {
    return false;
}

可以简单地写成:

return isMultipleOf3 === 0 || isMultipleOf5 === 0;

整个解决方案简单如下:

var isDivisibleArray = [];

for(var i = 0; i < 10; i++) {
    if (i%3 === 0 || i%5 === 0) isDivisibleArray.push(i);
}

console.log(isDivisibleArray); //[ 0, 3, 5, 6, 9 ]

-1
投票

错误是你实际上没有推送到数组,只调用要检查的函数 - 但是你忽略了结果。

您可以将此代码放入可以使用不同参数调用的函数中,从而使代码更短且可重用

function createArray(min = 0, max = 9, divisibleBy = [3, 5]) {
  return [...Array(max + 1).keys()]
    .filter(e => e >= min && divisibleBy.some(i => e % i === 0))
}

console.log(createArray());
// same as createArray(0, 9, [3, 5])

-1
投票
    let isDivisibleArray = [];

for(var i = 0; i < 10; i++) {
  if(isMultiple(i)=== true){  
  isDivisibleArray.push(i)
}
}

function isMultiple(i) {

    var isMultipleOf3 = i % 3;
    var isMultipleOf5 = i % 5;

    if(isMultipleOf3 === 0 || isMultipleOf5 === 0) {

      return true;
    }

    else {
        return false;
    }

}

试试这个

© www.soinside.com 2019 - 2024. All rights reserved.