2017-08-29 61 views
0

我需要編寫一個循環遍歷數字數組的函數,並在其數組中返回奇數的&偶數。我需要編寫一個循環遍歷數組數組的函數,並返回數組中的奇數和偶數。

我不確定是否有更好的方法來做到這一點,我卡住了。有沒有辦法返回這兩個語句?

var myNums = [1, 2, 3, 4, 5, 6, 7, 9]; 
 

 
var evens = []; 
 
var odds = []; 
 

 
function oddsAndEvens(nums) { 
 
\t for(var i = 0; i < nums.length; i++){ 
 
     if(nums[i] % 2 === 0){ 
 
     evens.push(nums[i]) 
 
     } 
 
     else if (!nums[i] % 2 === 0) { 
 
\t \t odds.push(nums[i]) 
 
     } 
 
    } 
 
     console.log(evens); 
 
     console.log(odds); 
 
    //I need it to "return" the array, 
 
    //not console log 
 
     
 
} 
 
    
 
console.log(oddsAndEvens(myNums));

+1

你怎麼樣自己做一些基本的研究? https://www.google.com/search?q=javascript+return+two+variables – CBroe

+2

您可以使用「else」而不是「else if」來簡化代碼。如果不是,那隻能是奇怪! – Michael

回答

0

返回數組,而不是執行console.log應該工作

var myNums = [1, 2, 3, 4, 5, 6, 7, 9]; 
 

 
var evens = []; 
 
var odds = []; 
 

 
function oddsAndEvens(nums) { 
 
\t for(var i = 0; i < nums.length; i++){ 
 
     if(nums[i] % 2 === 0){ 
 
     evens.push(nums[i]) 
 
     } 
 
     else if (!nums[i] % 2 === 0) { 
 
\t \t odds.push(nums[i]) 
 
     } 
 
    } 
 
    
 
    // return array of values you want 
 
    return [evens, odds] 
 
} 
 
    
 
console.log(oddsAndEvens(myNums));

0

你可以使用的結果確定目標並採取一系列的鑰匙推動價值的對象。

function getGrouped(array) { 
 
    return array.reduce(function (r, a) { 
 
     r[['even', 'odd'][a % 2]].push(a); 
 
     return r; 
 
    }, { odd: [], even: [] }); 
 
} 
 

 
var myNums = [1, 2, 3, 4, 5, 6, 7, 9]; 
 

 
console.log(getGrouped(myNums));
.as-console-wrapper { max-height: 100% !important; top: 0; }

0

關你當然可以,只是返回一個包含兩個雙數和賠率的對象,

function oddsAndEvens(nums) 
 
    { 
 
     var evens = []; 
 
     var odds = []; 
 
     for(var i = 0; i < nums.length; i++){ 
 
      if(nums[i] % 2 === 0){ 
 
      evens.push(nums[i]) 
 
      } 
 
      else if (!nums[i] % 2 === 0) { 
 
    \t \t  odds.push(nums[i]) 
 
      } 
 
     } 
 
     return {"evens":evens,"odds":odds}; 
 
    } 
 
     
 
    var myNums = [1, 2, 3, 4, 5, 6, 7, 9]; 
 
    result = oddsAndEvens(myNums); 
 
    console.log(result.evens); 
 
    console.log(result.odds);

1

乾淨的函數從該脣上分離賠率。

function arrangeNums(array) { 
 
    let odd = array.filter(i=>i%2!==0); 
 
    let even = array.filter(i=>i%2===0); 
 
    return {even:even,odd:odd}; 
 
} 
 
console.log(arrangeNums([...Array(100).keys()]));