2017-08-02 52 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)); 
相关问题