我对该脚本有问题,出现了问题。
Rnumer保持未定义状态。此脚本应返回并写入随机数列表中的所有不均匀数字。有人可以告诉我我做错了什么。提前致谢

var Rnumber = new Array();

for (i = 0; i<= 100;i++)
{
    Rnumber[i] = Math.ceil(Math.random()*101);
//  document.write(Rnumber[i] + "<br/>");
}

function unevenAndDivisible(Rnumber)
{
    var remainder = new Array();

    for (i = 0; i<= 100; i++)
    {
        remainder = parseInt(Rnumber[i])%2;
    }
    return remainder;
}

document.write(unevenAndDivisible());


变成

var Rnumber = new Array();

for (i = 0; i<= 100;i++)
{
    Rnumber[i] = Math.ceil(Math.random()*101);
//  document.write(Rnumber[i] + "<br/>");
}

function unevenAndDivisible(Rnumber)
{
    var remainder = new Array();

    for (i = 0; i<= 100; i++)
    {
        remainder[i] = Rnumber[i]%2;
    }
    return remainder;
}
document.write(unevenAndDivisible(Rnumber));


但是现在我得到了结果:
0,1,0,0,1,0,0,0,1,1,0,0,1,0,1,1,1 ....

我只是想也许我第一次问错,从Rnumbers的随机列表中写出所有不均匀的数字
然后我需要将其除以7并返回。

编辑

几乎所有问题都是明确的,谢谢大家。
他们还有一个问题:
在下面的这段代码中,它仅从余数中取出第一个不均匀值,我希望它对下一个if语句中所有不均匀的值进行检查%7。
 如果您自己运行它,也许您会更好地看到问题

var Rnumber = new Array();

for (i = 0; i<= 100;i++)
{
    Rnumber[i] = Math.ceil(Math.random()*101);
}

function unevenAndDivisible()
{
    var remainder = [];
    var answer = [];
    for (i = 0; i<= 100; i++)
    {
        if (Rnumber[i]%2 !== 0)
        {
            remainder.push(Rnumber[i]);

            for (c = 0; c <= remainder.length;c++)
            {
                if (remainder[c]%7 == 0)
                {
                    answer.push(remainder[c]);
                }
            }
        }
    }
    return answer;
}

answer = unevenAndDivisible();
document.write(answer);


问题解决了,谢谢大家

最佳答案

您无需将Rnumber传递给该函数,因为它已经在作用域中可用:

function unevenAndDivisible()
    {
        var remainder = [];

        for (i = 0; i<= 100; i++)
        {
            if (Rnumber[i]%2 !== 0) {
                remainder.push(Rnumber[i]);
            }

        }
        return remainder;
    }

remainder = unevenAndDivisible();
console.log(remainder);


JS Fiddle demo



根据OP的问题进行编辑(在上面对问题的评论中):


  ...有人可以解释这是什么意思:var remainder = [];


当然,它是数组文字表示法,它等于:var remainder = new Array();,它更加简洁一些,我更喜欢保存自己的输入方式。每当我在其中使用var x = new Array();时,我都会从JS Lint中得到一种印象,即通常首选上述版本(因为否则会抱怨),但是我不知道为什么。

关于javascript - Javascript变量保持未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8693756/

10-12 13:12