I can only return 1 array

I am trying to take this array and split it into 2 new arrays, alignments and coefficients and return them. When I run the code below, I only get the odds, why? And what can I do to solve this problem?

Thanks in advance.

var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];

function divider( arr ) {
  var evens = [];
  var odds = [];
  for (var i = 0; i < arr.length; i++) {
    if (arr[i] % 2 === 0) {
      evens.push(arr[i]);
    } else {
      odds.push(arr[i]);
    }
  }
  return(evens, odds);
}

divider(numbersArray);
+4
source share
7 answers

Because JavaScript can only return one value. Someday.

return(evens, odds)

evaluated with the same value as

return odds

due to the comma operator wrapped in a grouping of brackets.

Perhaps returning an array of arrays (or even an array object) is useful.

return [evens, odds]
+11
source

(evens, odds) odds, .
.

:

return { 'evens': evens, 'odds': odds };

:

var v = divider(numberArrays);
v.evens; // get evens this way
v.odds; // get odds this way
+2

.

return [evens, odds];

:

var evens;
var odds;

var arrayResults = divider(numbersArray);
evens = arrayResults[0];
odds = arrayResults[1];
console.log(evens);
console.log(odds);
+2

Javascript ONE. , , , :

 return([evens, odds]);

return({evens: evens, odds: odds})
+2

. .

  var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];

    function divider( arr ) {
      var evens = [];
      var odds = [];
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] % 2 === 0) {
          evens.push(arr[i]);
        } else {
          odds.push(arr[i]);
        }
      }
      return {evens:evens, odds:odds};
    }

    divider(numbersArray);
+1

Es5 ,

,

 var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];

    function divider( arr ) {
      var evens = [];
      var odds = [];
      for (var i = 0; i < arr.length; i++) {
        if (arr[i] % 2 === 0) {
          evens.push(arr[i]);
        } else {
          odds.push(arr[i]);
        }
      }
      return {evens:evens, 
    odds:odds};
    }

   divider(numbersArray);

, ,

+1

, :

var numbersArray = [1,2,34,54,55,34,32,11,19,17,54,66,13];

function divider( arr ) {
    var evens = [];
    var odds = [];
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] % 2 === 0) {
            evens.push(arr[i]);
        } else {
            odds.push(arr[i]);
        }
    }
    return {evens, odds};
}

divider(numbersArray);
+1

All Articles