我是新手,想创建一个接受数组的函数,只返回奇数索引的值。例如,给定一个数组[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])
答案 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
将评估true
,even modulo 2
评估false
。