我对该脚本有问题,出现了问题。
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/