无法输出奇数索引数组值 - Javascript

时间:2015-08-02 23:58:21

标签: javascript arrays

我是新手,想创建一个接受数组的函数,只返回奇数索引的值。例如,给定一个数组[1,2,3,4],我想返回2,4。

我的代码目前没有返回任何值,我无法弄清楚原因。以下是我的代码......非常感谢您提供的任何帮助。

谢谢!

var odder = function(array) {
    var only_odds = []
    for (var i = 1; i < array.length; i += 2) {
        only_odds.push(array[i])
    }
    return only_odds
}

//Below I test the code on my console; it returns 'undefined.'

console.log(odder[5, 3, 2, 4, 6])

1 个答案:

答案 0 :(得分:0)

var odder = function(array) {
    var only_odds = array.filter(function(value, index){
    //value is the current selected value, while index refers to the current index.
    //value will not be used in this function, since we only want to test the index.
    return index % 2; // only the odd values will be returned.
    });
    return only_odds;
}

//encapsuled in parentheses to execute the function. Result will be [3, 4]
console.log(odder([5, 3, 2, 4, 6]));

这个更新的功能有点优化。它使用modulo(%)。它测试索引是奇数还是偶数。如果奇数,模运算符将返回true。然后array.filter返回带有奇数索引的值。

我在这里使用Array.prototype.filter

Modulo:返回除法的余数。因此,5 modulo 2会给出剩余的1。自2 times 2 = 4 + 1 = 5起。 1将在JavaScript中评估为真实(真实)。因此,odd module 2将评估trueeven modulo 2评估false