推送阵列

时间:2016-11-08 05:29:57

标签: javascript

我不太清楚为什么我的代码在这里不起作用。它应该过滤掉奇数和偶数并将它们放入一个数组中,但我认为我(缺乏)理解是将数字放入数组中我想要的。

function oddAndEven(numbers) {
    var odd = [];
    var even = [];
    for (num = 0; num < numbers.length; numbers++) {
        if (numbers[num] % 2 == 0) {
            even.push(numbers[num]);
        } else if (numbers[num] % 2 == 1) {
            odd.push(numbers[num]);
        }

    }
    console.log(odd + "is odd and " + even + " is even");
}

iqTest(11221122);

5 个答案:

答案 0 :(得分:0)

function oddAndEven(numbers) {
    var odd = [];
    var even = [];
    for (num = 0; num < numbers.length; num++) { // numbers is array, num is counter variable 
        if (numbers[num] % 2 == 0) {
            even.push(numbers[num]);
        } else if (numbers[num] % 2 == 1) {
            odd.push(numbers[num]);
        }

    }
    console.log(odd + " is odd and " + even + " is even");
}

oddAndEven([10,5,6,4,5]); // pass array as you are traversing though it

答案 1 :(得分:0)

在你的情况下没有增加循环变量。请试试这个。

ipdb> !help(sum)
Help on built-in function sum in module builtins:

sum(iterable, start=0, /)
  Return the sum of a 'start' value (default: 0) plus an iterable of numbers

  When the iterable is empty, return the start value.
  This function is intended specifically for use with numeric values and may
  reject non-numeric types.

ipdb>

答案 2 :(得分:0)

试试这个,

function oddAndEven(numbers) {
var odd = [];
var even = [];
for (num = 0; num < numbers.length; numbers++) {
    if (numbers[num] % 2 == 0) {
        even[num]=numbers[num];
    } else if (numbers[num] % 2 == 1) {
        odd[num]=numbers[num];
    }

}
console.log(odd + "is odd and " + even + " is even");
}

答案 3 :(得分:0)

您似乎更多地改善了您的练习。

function oddAndEven(numbers) {
    var odd = [];
    var even = [];

    console.log ("length is " , numbers.length);
    for (num = 0; num < numbers.length; num++) {
        if (numbers[num] % 2 == 0) {
            even.push(numbers[num]);
        } else if (numbers[num] % 2 == 1) {
            odd.push(numbers[num]);
        }

    }
    console.log(odd + "is odd and " + even + " is even");
}

oddAndEven("82938411221122919239");

你错过了num ++,你可能想要发送输入“82938411221122919239”

正如A.T建议的那样,你也应该发送[8,2,9,....]作为输入。

答案 4 :(得分:0)

function oddAndEven(numbers) {
    var odd = [];
    var even = [];
    // a bit of optimization here, accessing `length` property only once
    for (index = numbers.length - 1 ; index >= 0; index--) {
        let current = numbers[index];
        if (current%2 == 0) {
            even.push(current);
        } else {
            odd.push(current);
        }
    }
    console.log(odd + "is odd and " + even + " is even");
}