How to get even numbers array to print first instead of odds?

匿名 (未验证) 提交于 2019-12-03 01:39:01

问题:

So I have this function where I've need to take out the evens and odds and put them into separate arrays but I need the evens array to print first rather than the odds.

var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];  function divider(numbersArray) {   var evensOdds = [[], []];     for (var i = 0; i < numbersArray.length; i++) {       evensOdds[i & 1].push(numbersArray[i]);   }   return evensOdds; }

回答1:

If you want to split the number by their even and odd values, instead of using the index (i), determine the sub array to push into using the value - numbersArray[i] % 2.

var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];  function divider(numbersArray) {   var evensOdds = [[], []];   for (var i = 0; i < numbersArray.length; i++) {     evensOdds[numbersArray[i] % 2].push(numbersArray[i]);   }   return evensOdds; }  console.log(divider(numbersArray));

If you want to split them by even and odd indexes use (i + 1) % 2 to determine the sub array to push into:

var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];  function divider(numbersArray) {   var evensOdds = [[], []];   for (var i = 0; i < numbersArray.length; i++) {     evensOdds[(i + 1) % 2].push(numbersArray[i]);   }   return evensOdds; }  console.log(divider(numbersArray));


回答2:

Just for fun, a forEach version of the accepted answer.

    var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];     var even_odd = [ [], [] ];      numbersArray.forEach( e => even_odd[e%2].push(e) );      console.log(even_odd);


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!