Trace
Trace

Reputation: 67

loop through array, returns odd and even numbers

I am teaching myself code and am trying to solve this problem:

Write a loop that loops through nums, if the item is even, it adds it to the evens array, if the item is odd, it adds it to the odds array.

This is what I have so far:

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

var evenNumbers = function(nums) {
    for (var i = 0; i < nums.length; i++) {

        if ((nums[i] % 2) != 1) {
            evens.push(nums[i]);
                console.log(evens);
        }
        else {
            odds.push(nums[i]);
                console.log(odds);
        }
    }

};

alert(evens);
alert(odds);

They don't return anything and I'm not sure where I'm going wrong, any help would be much appreciated.

Upvotes: 1

Views: 44045

Answers (9)

Deepak Gauttam
Deepak Gauttam

Reputation: 13

function sortEvenOdd(arr, arrSize) {
  let odd = [];
  let even = [];
  for (let i = arrSize - 1; i >= 0; i--) {
    if (arr[i] % 2 !== 0) {
      odd.push(arr[i]);
    } else {
      even.push(arr[i]);
    }
  }
  even.sort(function (a, b) {
    return a - b;
  });
  odd.sort(function (a, b) {
    return b - a;
  });

  return [...odd, ...even];
}

// return odd and even numbers
/* Sample Input
7
1 2 3 5 4 7 10

Sample Output 7 5 3 1 2 4 10

Sample Input
7
0 4 5 3 7 2 1

Sample Output 7 5 3 1 0 2 4 */

Upvotes: 0

Md.Shakil Shaikh
Md.Shakil Shaikh

Reputation: 351

Someone can try according to the way:

function findOddEven(arr){
    let odd=[],even=[],i=0,j=0,k=0;
    for(i;i<arr.length;i++){
        if(arr[i]%2==0){
          even[j++]=arr[i]
        }else{
            odd[k++]=arr[i]
        }
    }
    console.log("Even and Odd number",even,odd)
}

findOddEven([2,13,4,26,17])

Upvotes: 0

HariPrasath25
HariPrasath25

Reputation: 11

Here is a snippet :

const arr = [24,42,543,676,456,535,555];
console.log("Values: "+arr);
var even = arr.filter((number)=>number%2 === 0);
console.log("Even Number: "+even);
var odd = arr.filter((number)=>number % 2 !==0);
console.log("Odd Number: "+odd);

Upvotes: 0

Jack WS
Jack WS

Reputation: 21

function groupNumbers(arr) {

  var arr = [1,2,3,4,5,6,7,8,9,10];

  var evenNumbers = arr.filter(number => number % 2 == 0);

  console.log("Even numbers " + evenNumbers);

  var oddNumbers = arr.filter(number => number % 2 !== 0);

  console.log("Odd numbers " + oddNumbers);
}

groupNumbers();

Upvotes: 2

sunilsingh
sunilsingh

Reputation: 499

            //Even odd
            var arrays = [1,2,34,54,55,34,32,11,19,17,54,66,13];
            var result = arrays.filter((numbers)=>{
                 if(numbers%2!==0){
                   console.log(`${numbers} is not even`);
                 } else {
                     console.log(`${numbers} is even`);
                }
            });

Upvotes: 0

liron_hazan
liron_hazan

Reputation: 1546

I would recommend checking out the array.prototype.filter function with ES6 syntax:

const oddNumbers = [1,2,34,54,55,34,32,11,19,17,54,66,13].filter((number) => number%2!==0);
console.log(oddNumbers);

So elegant :)

Upvotes: 11

user4244405
user4244405

Reputation:

var rsl = {even:[], odd:[]};

[1,2,34,54,55,34,32,11,19,17,54,66,13].forEach(function(val,key,arr)
{
    var wrd = (val % 2) ? 'odd' : 'even';
    rsl[wrd][rsl[wrd].length] = val;
});

console.log(rsl);

Upvotes: 0

Casey Rule
Casey Rule

Reputation: 2085

You're not actually executing the function. You need to call evenNumbers();

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

var evenNumbers = function(nums) {
    for (var i = 0; i < nums.length; i++) {

        if ((nums[i] % 2) != 1) {
            evens.push(nums[i]);
                console.log(evens);
        }
        else {
            odds.push(nums[i]);
                console.log(odds);
        }
    }

};

evenNumbers(nums);
alert(evens);
alert(odds);

Upvotes: 9

Kyle
Kyle

Reputation: 59

You aren't actually calling your function, just defining it.

call:

evenNumbers(nums);

before alerting the arrays

Upvotes: 3

Related Questions