你的問題是不是真的適合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
你試過了什麼解決方案?你可以分享嗎? –