Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在Javascript中做了一个for循环来检查一个数字是否是素数。但是它';它不工作了_Javascript_For Loop - Fatal编程技术网

我在Javascript中做了一个for循环来检查一个数字是否是素数。但是它';它不工作了

我在Javascript中做了一个for循环来检查一个数字是否是素数。但是它';它不工作了,javascript,for-loop,Javascript,For Loop,我在JavaScript中做了一个for循环来检查一个数字是否是素数。但它不起作用。谁能帮我做这个 Fill in a limit:<br> <input type="number" id="limit" placeholder="limit" /></br> <input type="submit" value="Go!" onclick="primenumbers()" /><br><br> <p id="answ

我在JavaScript中做了一个for循环来检查一个数字是否是素数。但它不起作用。谁能帮我做这个

Fill in a limit:<br>
<input type="number" id="limit" placeholder="limit" /></br>
<input type="submit" value="Go!" onclick="primenumbers()" /><br><br>
<p id="answer">Here comes the answer</p>

<script>
var answer = document.getElementById('answer');

function primenumbers() {
    var limit = document.getElementById('limit').value;

    answer.innerHTML = ' ';
    for(var i=0; i<=limit; i++) {
        if(i == 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113){
            answer.innerHTML += i+' = '+'Primenumber'+'<br>';
        } else {
            answer.innerHTML += i+' = '+'Not a primenumber'+'<br>';
        }
    }
}
</script>
填写限额:



答案来了

var answer=document.getElementById('answer'); 函数素数(){ var limit=document.getElementById('limit')。值; answer.innerHTML=''; 对于(var i=0;i
if(i==2,3,5,…,113)
来说,如果(113)
,这是一个非常长的编写过程,它总是正确的。这就是工作原理

如果要测试某个值是否包含在一组值中,可以对该值集使用数组,然后使用以下命令在该值集中搜索该值:


如果您想在Internet Explorer版本8或更低版本中使用它,您需要在Javascript中实现
Array.prototype.indexOf
。有一个.

供将来参考,这可能会帮助您检查素性:。它使用For循环!我不这么认为。右侧部分返回最后一个值113。@ele逗号运算符计算其左侧表达式例如:
var x=(5,7,50);
将50赋值给
x
,然后执行
var y=(x++,x++,300)
将使
x==52
y==300
。你是对的。请补充他不应该“计算”素数是这样的。我把你的答案投了赞成票。@ele我同意,素数测试通常不是这样做的,但我怀疑这符合他的需要,因为他一定知道素数
>113
,这是不正确的,我想深入了解如何测试素数的细节可能超出了他的问题范围。@ytownt9我试过一个例子很多,但我不懂如何使用indexOf。你能帮我一点忙吗?
if ([2, 3, 5, ..., 113].indexOf(i) >= 0)