javascript不让我使用modulu? %?

时间:2017-04-28 08:41:34

标签: javascript typescript modulo

我试图找出一个数字是否可以被3整除 - 我试图在研究一下之后使用这个%,但是我得到了这个错误...

script.js:5 Uncaught SyntaxError: Unexpected token %

似乎说我不能用它?这对我没有意义,为什么我无法使用它?

numArray = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100];

function startBingBong(){
for each (num in numArray){
if (num % 3 == 0){
console.log("Bing");
} else if (num % 5 == 0){
console.log("Bong");
} else if (num % 3 == 0 && num % 5 == 0){
console.log("Bing Bong");
} else { console.log(num)}
}};

4 个答案:

答案 0 :(得分:3)

JavaScript for each (num in numArray){中没有这样的语法。

要遍历数组的所有元素,您可以使用Array.prototype.forEach。您必须传递一个名为iteratee的函数。它将被调用为数组中的每个元素。

var array = [1,2,3];
array.forEach(function(el) {
  console.log(el);
});

答案 1 :(得分:2)

这是不正确的javascript。 for each (num in numArray){请参阅:For loop您不能使用num % 3,因为num不是任何内容。使用arrayName[position] % 3。您还应该首先使用最严格的if statement



var numArray = [12,13,14,15,16,17,18,19,20];

function startBingBong(){
for (var i =0; i < numArray.length; i++){
if (numArray[i] % 3 == 0 && numArray[i] % 5 == 0){
console.log("Bing Bong");
} else if (numArray[i] % 5 == 0){
console.log("Bong");
} else if (numArray[i] % 3 == 0){
console.log("Bing");
} else { console.log(numArray[i])}
}};

startBingBong();
&#13;
&#13;
&#13;

答案 2 :(得分:0)

您需要指定您正在查看的内容。做你想做的最简单的方式是这样的:

for (var i = 0; i < numArray.length; i++) {
    if (i % 3 == 0) {
        console.log("Bing");
    } else if (i % 5 == 0) {
        console.log("Bong");
    } else if (i % 3 == 0 && i % 5 == 0) {
        console.log("Bing Bong");
    } else {
        console.log(i)
    }
}

答案 3 :(得分:-1)

您使用的for each语法不正确。在Javascript(EcmaScript 5)中编写它的正确方法是:

for(var i=0;i<numArray;i++){
    var num = numArray[i];
    // ...
}

或者,如果您使用的是ES6,则可以使用以下内容:

for(let num of numArray){
    // ...
}