Javascript 用余数运算符对奇数和偶数进行排序
如果一个数被二除时余数不等于0,则该数必须为奇数。我试图在if语句中使用这种逻辑,只保留奇数值,而去掉偶数值。我不确定我是怎么做的,但myArray返回的是偶数值和奇数值。有什么想法吗Javascript 用余数运算符对奇数和偶数进行排序,javascript,Javascript,如果一个数被二除时余数不等于0,则该数必须为奇数。我试图在if语句中使用这种逻辑,只保留奇数值,而去掉偶数值。我不确定我是怎么做的,但myArray返回的是偶数值和奇数值。有什么想法吗 function sumFibs(num) { var myArray = [1,1]; // Create fibonacci sequence // Stop creating fibonacci numbers at num // Push odd numbers to oddNums ar
function sumFibs(num) {
var myArray = [1,1];
// Create fibonacci sequence
// Stop creating fibonacci numbers at num
// Push odd numbers to oddNums array
for (var i = 0; i < myArray.length; i++) {
if (myArray[i+1] + myArray[i] <= num && myArray[i+1] + myArray[i] % 2 !== 0) {
myArray.push(myArray[i+1] + myArray[i]);
}
} // End loop.
console.log(myArray);
// Summation of oddNums array.
return myArray.reduce(function(a,b) {
return a + b;
});
} // End function.
sumFibs(1000);
函数sumFibs(num){
var myArray=[1,1];
//创建斐波那契序列
//停止在num处创建斐波那契数
//将奇数推送到oddNums数组
对于(var i=0;i 如果(myArray[i+1]+myArray[i]在生成fib序列时尝试过滤奇数值,这可能不是最佳方法。如果将模表达式括在括号中
(myArray[i+1] + myArray[i]) % 2
您的数组将不包含继续生成序列所需的值。理想情况下,您应该生成完整的fib序列,然后进行筛选:
var myArray = [1,1];
for (var i = 0; i <= num; i++) {
myArray.push(myArray[i+1] + myArray[i]);
} // End loop.
myArray = myArray.filter(function(a){ return a%2 !== 0 })
var myArray=[1,1];
对于(var i=0;i为什么不直接使用?您可能还应该在myArray[i+1]+myArray[i]
周围使用括号,如下所示:(myArray[i+1]+myArray[i])%2!==0
。运算符PrevendenceRight似乎有问题,请生成完整的序列,然后进行筛选。此方法有效。感谢发布。我应该注意,若要仅返回奇数,我应该返回{a%2!==0}。我将尝试将其编辑到您的帖子中。很好的捕获,抱歉,我没有校对就键入了它。