返回不均匀数

时间:2018-07-03 17:08:17

标签: javascript comparison

我已经开始学习Javascript,并且正在做一些简单的练习。给定一个数字数组,返回不均匀的数字。我既使用了“古典”方式也使用了箭头功能。但是他们的行为有点怪异。这是箭头功能:

const answer2 = [1, 2, 3, 4, 5, 6, 7, 8, 9].filter(value => {
    return value % 2 != 0;
    })

对我来说似乎不错,而且似乎可以正常工作。然后我做了经典的:

function filterArrayToOdd(inputArray) {
    let outputArray = [];
    for (let i = 0; i < inputArray.length; i++) {
        if (i % 2 != 0) {
            outputArray.push(inputArray[i]);
        }
    }
    return outputArray;
}

这将返回一个包含所有偶数的数组!可以将工作方式从!=更改为==,但是为什么?!

1 个答案:

答案 0 :(得分:3)

如果您的测试数组不是顺序排列的[1,2,3,4,5,6,7,8,9],而是像[2、5、9、11, 12、3]。

依次,您可能会对此问题产生误报,因为正如@Pointy所说,在第二种情况下,您正在检查数组索引,而不是实际值。

// instead of
if (i % 2 != 0) {


// do this:
if (inputArray[i] % 2 != 0) {