簡體   English   中英

如何使用javascript在新數組中存儲可分數

[英]How to store divisible number in a new array with javascript

我試圖在三個數組中存儲可被三整除的數字。 這是怎么做到的?

var numbers = [1,2,3,4,5,6,7,8,9];
var threes = [];
var iLoveThree = function(numbers,threes){
    for(i in numbers){
      if(i.value % 3 == 0){
        threes.push([i]);
        console.log(threes);
      } 
    } return threes
};
iLoveThree();

有一些問題。

  • 您需要使用索引numbers[i]訪問數組中的numbers[i]而不僅僅是檢查索引。

  • 您還需要將兩個參數傳遞給iLoveThree函數。

這是工作代碼:

var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var threes = [];
var iLoveThree = function (numbers, threes) {
    for (i in numbers) {
        if (numbers[i] % 3 === 0) {
            threes.push(numbers[i]);
        }
    }
    return threes;
};

console.log(iLoveThree(numbers, threes));
// [3, 6, 9]

作為旁注,您可以使用.filter()方法簡化代碼。

如果boolean num % 3 === 0為true,則不會從數組中刪除該數字。

var numbers = [1,2,3,4,5,6,7,8,9].filter(function (num) {
  return num % 3 === 0;
});

console.log(numbers);
// [3, 6, 9]

當你做推動時,你把括號括在i身邊。 你不需要括號。

var numbers = [1,2,3,4,5,6,7,8,9];
var threes = [];
var iLoveThree = function(numbers,threes){
    for(i in numbers){
      if(i.value % 3 == 0){
        threes.push(i);   //don't put brackets here
        console.log(threes);
      } 
    } return threes
};

干得好:

var numbers = [1,2,3,4,5,6,7,8,9];
function iLoveThree(numbers) {
  return numbers.filter(function(n) {
    return n % 3 === 0;
  });
}
var threes = iLoveThree(numbers);

嘗試替換for循環for..in循環; 在當前迭代中使用數組中的numbers[i]數而不是數組中的[i]項索引

 var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]; var threes = []; for(var i = 0; i < numbers.length; i++) !(numbers[i] % 3) && threes.push(numbers[i]); console.log(threes) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM