簡體   English   中英

Javascript循環數組以查找可被3整除的數字

[英]Javascript loop an array to find numbers divisible by 3

我需要找到使javascript遍歷數組的正確方法,找到可被3整除的所有數字,然后將這些數字推入新數組。

這是我到目前為止所擁有的..

var array = [],
    threes = [];

function loveTheThrees(array) {
    for (i = 0, len = array.length; i < len; i++) {
    threes = array.push(i % 3);
  }
  return threes;
}

因此,如果我們通過函數傳遞[1、2、3、4、5、6]數組,它將把數字3和6推入“三次”數組。 希望這是有道理的。

您可以將Array#filter用於此任務。

filter()對數組中的每個元素調用一次提供的callback函數,並為所有值構造一個新數組,為此, callback返回一個真值或一個強制為true的值 僅對具有指定值的數組索引調用callback 對於已刪除或從未分配值的索引,不會調用它。 僅跳過未通過callback測試的數組元素,並且不包含在新數組中。

 function loveTheThrees(array) { return array.filter(function (a) { return !(a % 3); }); } document.write('<pre>' + JSON.stringify(loveTheThrees([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), 0, 4) + '</pre>'); 

var array = [],
three = [];

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

console.log([1, 2, 3, 4, 5, 6, 7].filter(function(a){return a%3===0;}));

Array.filter()遍歷數組,如果回調返回true,則將當前對象移動到另一個數組。 在這種情況下,我編寫了一個回調函數,如果該函數可以被三整除,則返回true,因此僅將那些項添加到其他數組中

檢查數字是否可被3整除,然后將其添加到數組。 嘗試這個

function loveTheThrees(array) {
    for (i = 0, len = array.length; i < len; i++) {
      if(array[i] % 3 == 0){
        three.push(array[I]);
     }
  }

loveTheThrees=(arr)=>arr.filter(el=>Boolean(parseFloat(el)) && isFinite(el) && !Boolean(el%3))

es6版本+跳過非數字

loveTheThrees([null,undefined,'haha',100,3,6])

結果:[3,6]

像Nina一樣建議使用Filter是更好的方法。 但是我假設您是一個初學者,可能還不了解回調,在這種情況下,此功能將起作用:

function loveTheThrees(collection){
        var newArray = []
        for (var i =0; i< collection.length;i++){
            if (myArray[i] % 3 === 0){
                newArray.push(collection[i])
            }
        }
        return newArray;
    }
var originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
function loveTheThrees(array1) {
  var threes = [];
  for (var i = 0; i < array1.length; i++) {
    if (array1[i] % 3 === 0) {
      threes.push(array1[i]);
    }
  }
  return threes;
}
loveTheThrees(originalArray);

在ES6中:

const arr = [1, 33, 54, 30, 11, 203, 323, 100, 9];

// This single line function allow you to do it:
const isDivisibleBy3 = arr => arr.filter(val => val % 3 == 0);


console.log(isDivisibleBy3(arr));
// The console output is [ 33, 54, 30, 9 ]

暫無
暫無

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

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