2017-08-02 48 views
0

非常新,試圖創建一個函數來取出和分隔數組中的所有負數/正數/零。到目前爲止,我已經能夠做出一個可接受的循環,但只有硬編碼的數字。目前不知道如何將其轉換爲函數。請幫忙。試圖在JavaScript中劃分負數和正數

var arr=[1,3,5,-9,-3,0]; 
var new_arr = []; 
var new_arr2 = []; 
var new_arr3=[]; 
for(i =0; i < arr.length; i++){ 
    if(arr[i]>0){ 
     new_arr.push(arr[i]); 
    } 
    else if(arr[i]<0){ 
     new_arr2.push(arr[i]); 
    } 
    else if(arr[i]===0){ 
     new_arr3.push(arr[i]); 
    } 
} 
console.log(new_arr3.length/arr.length); 
console.log(new_arr2.length/arr.length); 
console.log(new_arr.length/arr.length); 
+0

最終目標是獲取新數組中的索引總數,並將它們除以原始數組中的索引數。 – user8402521

+0

如果你對這些數字的數量感興趣,那麼你爲什麼不使用簡單的數字變量作爲計數器,而不是爲每種類型創建一個新的數組。 'var counterNeg = 0,counterPos = 0,counterZero = 0;'然後像這樣遞增它們:'if(arr [i] <0){counterNeg ++; }'。 –

回答

1

這樣的事情呢?

function division(arr) { 
 
    var new_arr = []; 
 
    var new_arr2 = []; 
 
    var new_arr3 = []; 
 
    for (i = 0; i < arr.length; i++) { 
 
    if (arr[i] > 0) { 
 
     new_arr.push(arr[i]); 
 
    } else if (arr[i] < 0) { 
 
     new_arr2.push(arr[i]); 
 
    } else if (arr[i] === 0) { 
 
     new_arr3.push(arr[i]); 
 
    } 
 
    } 
 
    console.log(new_arr3.length/arr.length); 
 
    console.log(new_arr2.length/arr.length); 
 
    console.log(new_arr.length/arr.length); 
 
} 
 

 
division([1, 3, 5, -9, -3, 0]);

這個新的函數將數組作爲參數,因此,所有你需要做的就是把它和傳遞數組。

+0

這是完美的,非常感謝你veryyyyyy。 – user8402521

1

您也可以嘗試這種方式,在這裏我正在考慮0作爲一個正數。如果你願意,你可以根據需要調整條件。

function positive_negative(array){ 

    positive = array.filter(function (a) { return a >= 0; }); 
    negative = array.filter(function (a) { return a < 0; }); 
    return [positive,negative]; 

    } 

var array = [1,3,5,-9,-3,0]; 
console.log(positive_negative(array)); 
相關問題