你的问题是不是真的适合StackOverflow的,你至少应该尝试写一些东西,看看你走多远。
无论如何,你似乎想遍历密码中的元素以找到没有奇数的数组。
第一项任务是如何确定一个数字是否是偶数。这与从模数2中寻找余数一样简单。如果余数为零,则数字是偶数,否则是奇数。
所以一个简单的测试是:(!)
var isEven;
if (x % 2 == 0) {
isEven = true;
} else {
isEven = false;
}
因为0类型转换为假,并且不操作者反转值的感实性,结果为布尔转换,上面可以写为:
var isEven = !(x % 2);
有很多方法来遍历数组,如果你的任务只是为了找到没有奇数的元素,我会使用Array.prototype.every,其作为测试返回false尽快返回,或Array.prototype.some,这测试结束后立即返回变成现实。
但是,在这种情况下,您想计算每个元素中偶数的数量,并找到所有偶数中的第一个。一种方法是遍历数组,并写出元素中偶数的数量,并记下它的所有偶数。你没有说出预期的产出,所以我只是猜测。
var passcodes = [
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3], // this last comma affects the array length in some browsers, remove it
];
// Set flag for first element with all even numbers
var foundFirst = false;
// Iterate over each element in passcodes
passcodes.forEach(function(code) {
// Count of even numbers in current array
var evenCount = 0;
// Test each element of code array and increment count if even
code.forEach(function(num) {
if (!(num % 2)) ++evenCount;
});
// If all elements are even and haven't found first yet, write out elements
if (code.length == evenCount && !foundFirst) {
console.log('Passcode (first all even): ' + code.join());
// Set flag to remember have found first all even array
foundFirst = true;
}
// Write count of even numbers in this array
console.log('Even number count: ' + evenCount + ' of ' + code.length + ' numbers.');
});
请发表您的代码。 –
想想。如果它一开始没有帮助,那就多想一想。你会最终弄明白。 – Ivan
你试过了什么解决方案?你可以分享吗? –