我是javascript的新手,我正在寻找以下算法的帮助。
如果数组连续有3个奇数,则打印" odd"。如果数组连续有3个偶数 - 打印"偶数"。
SELECT * from support WHERE last_post_by != 'Admin' GROUP BY posted_by
oddsAndEvens([2,4,6]);
答案 0 :(得分:1)
您可以使用Array.prototype.every()
。您还可以包括检查数组的元素是否为7.5
var oddsAndEvens = (arr) => arr.every(n => n % 2 === 0) && "even"
|| arr.every(n => n % 2 != 0) && "odd";
console.log(oddsAndEvens([2, 4, 5])
, oddsAndEvens([33, 99, 7])
, oddsAndEvens([7.5, 4, 6]));

答案 1 :(得分:0)
您需要的是奇数和事件数的计数器。下面的函数将全部计算,如果有3个或更多匹配,则它在控制台日志中打印“奇数”OR / AND“偶数”。适用于任何大小的数组。
{{1}}
答案 2 :(得分:0)
您需要确保首先拥有3个定义的值。你需要添加:
if(arr[i] && arr[i+1] && arr[i+2]) { }
完整代码:
function oddsAndEvens (arr) {
for(i=0; i < arr.length; i++) {
if(arr[i] && arr[i+1] && arr[i+2]) {
if(arr[i]%2==0 && arr[i+1]%2==0 && arr[i+2]%2==0) {
console.log("even");
}
if(arr[i]%2!=0 && arr[i+1]%2!=0 && arr[i+2]%2!=0) {
console.log("odd");
}
}
}
}
oddsAndEvens([1,3]); /* nothing. no 3 defined values in a row */
oddsAndEvens([1,3,7]); /* odd */
oddsAndEvens([2,2,8]); /* even */
oddsAndEvens([1,3,1, 9]); /* odd, odd */