创建一个函数,从可被3整除的数组中提取所有数字

时间:2016-08-01 18:53:24

标签: javascript arrays for-loop

var array = [3, 4, 6, 5, 9, 10, 21];

var divThree = [];

var loveTheThrees = function (array) {
  for (i = 0; i = array.length; i++) {
    if (array[i] % 3 === 0) {
      amount.push(divThree[i]);
    }
  }
}

我刚学习Javascript并且在使用此功能时遇到了一些麻烦。我可以感觉到我很接近,但无法弄清楚我做错了什么。

6 个答案:

答案 0 :(得分:8)

只需使用filter()

divThree = array.filter(x => x%3 === 0);

答案 1 :(得分:1)

在您的代码中,您指定i = array.length而不是条件,因此您的循环是无限的。您需要将=更改为<。并且还要进入dimThree而不是amount

&#13;
&#13;
 var array = [3, 4, 6, 5, 9, 10, 21];

    var divThree = [];
    
    var loveTheThrees = function (array) {
      for (i = 0; i < array.length; i++) {
        if (array[i] % 3 === 0) {
          divThree.push(array[i]);
        }
      }
    }

loveTheThrees(array);
divThree.forEach(x => console.log(x));
&#13;
&#13;
&#13;

或使用filter()功能

&#13;
&#13;
 var array = [3, 4, 6, 5, 9, 10, 21];
    var divThree = [];
    
    divThree = array.filter(x => x % 3 === 0);

divThree.forEach(x => console.log(x));
&#13;
&#13;
&#13;

答案 2 :(得分:1)

有不同的方法(这里的其他答案可以证明),但您发布的代码中的错误是i = array.length正在重置i的值。您将要使用<代替。你还需要进入正确的阵列。

var array = [3, 4, 6, 5, 9, 10, 21];

var divThree = [];

var loveTheThrees = function (array) {
  for (i = 0; i < array.length; i++) {
    if (array[i] % 3 === 0) {
      divThree.push(array[i]);
    }
  }
}

答案 3 :(得分:1)

您可以使用数组的.filter

var array = [3, 4, 6, 5, 9, 10, 21];

var output = array.filter(function(num){
  return num%3 ==0
});
console.log(output);

答案 4 :(得分:0)

你必须推出正确的价值:

divThree.push(array[i]);

和:你可以实现一个for循环,如:

for (var i = 0; i < array.length; i++) { .. }

for (var i = 0, l = array.length; i<l; i++) { .. }

答案 5 :(得分:0)

首先需要更正从i=array.lengthi < array.length的for循环条件。但在这种情况下更重要 - 您需要考虑以下事项: 您希望将可被3整除的值添加/推送到名为divThree的数组中 - 因此正确的语法为<destination-array>.push(<value-to-push>)。所以在这种情况下,如果当前值array[i]可以被3整除,你想将它推入名为divThree的数组中,所以你可以这样做:

for (i = 0; i < array.length; i++) {
    if (array[i] % 3 === 0) {
      //here we push array[i] into the array because it is divisible my 3
      divThree.push(array[i]);
    }
  }

随着Javascript的进步,您会发现在这种情况下,使用lodash(对于NodeJS应用程序)更容易,因为它提供了非常好的便利功能。

我希望这会有所帮助。