我被困在這個:
撰寫一個名為 getValidPassword 的函式,它接受一個二維陣列作為引數。
第一個陣列中的每個條目代表一個密碼。您需要找到沒有奇數的密碼并從您的函式中回傳該密碼。下面是一個例子:
var loggedPasscodes =[
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3]
];
getValidPassword(loggedPasscodes) // returns the array: [2, 6, 0, 8]
以這種方式嘗試過,但錯誤訊息顯示:>>>>代碼不正確函式 getValidPassword 未按要求作業。” [2,6,0,8]。
`var loggedPasscodes=[
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3],
];
var getValidPassword = function(getPassword){
var passcode = [];
var cache = [];
for (var i = 0; i < getPassword.length; i ){
for (var j = 0; j < getPassword[i].length; j ){
if(getPassword[i][j] % 2 === 0){ cache.push(getPassword[i][j]);
}
else {break;
}
if(getPassword[i].length === cache.length){
passcode= cache.slice();
}
}
}
return passcode;
};
console.log('[' getValidPassword(loggedPasscodes) ('') ']');`
還有這個:
function getValidPassword(loggedPasscodes) {
return loggedPasscodes.filter(passcode => passcode.every(n => n % 2 === 0));
};
let loggedPasscodes =[
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[10, 2, 4, 42],
[4, 3, 4, 3]
];
console.log(getValidPassword(loggedPasscodes));
and
function getValidPassword(loggedPasscodes) {
for (let i = 0; loggedPasscodes.length > i; i ) {
let passcode = loggedPasscodes[i];
let temImpar = false;
for (let j = 0; passcode.length > j; j ) {
if (passcode[j] % 2 !== 0) { // ímpar
temImpar = true;
números)
break;
}
}
if (! temImpar) {
return passcode;
}
};
let loggedPasscodes =[
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3]
];
console.log(getValidPassword(loggedPasscodes)); // [2, 6, 0, 8
]
還有這個:
function getValidPassword(loggedPasscodes) {
let codes = [];
for (let i = 0; loggedPasscodes.length > i; i ) {
let passcode = loggedPasscodes[i];
let temImpar = false;
for (let j = 0; passcode.length > j; j ) {
if (passcode[j] % 2 !== 0) { // ímpar
temImpar = true;
break;
}
}
if (! temImpar) {
codes.push(passcode);
}
}
return codes;
};
let loggedPasscodes =[
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3]
];
console.log(getValidPassword(loggedPasscodes))
這個:
function getValidPassword(loggedPasscodes) {
return loggedPasscodes.find(passcode => passcode.every(n => n % 2 === 0));
};
let loggedPasscodes =[
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3]
];
console.log(getValidPassword(loggedPasscodes)); // [2, 6, 0, 8]
也嘗試復制這樣的例子:
function retornaNNumerosPares(n) {
let numerosPares = [];
for (let i = 0; numerosPares.length < n; i ) {
if (i % 2 == 0) {
numerosPares.push(i);
}
}
return numerosPares;
}
console.log(retornaNNumerosPares(5));
但以上都沒有奏效。你能幫我嗎,我幾乎完成了所有的練習。
你能幫忙嗎?
uj5u.com熱心網友回復:
快速方法會抓住一切機會結束不必要的回圈。
這種方法迭代代碼陣列并通過檢查不需要的數字來迭代代碼,然后執行外回圈的繼續,否則在內回圈結束時回傳找到的陣列。
const
getValidPassword = codes => {
outer: for (const code of codes) {
for (const value of code) if (value % 2) continue outer;
return code;
}
},
loggedPasscodes = [[1, 4, 4, 1], [1, 2, 3, 1], [2, 6, 0, 8], [5, 5, 5, 5], [4, 3, 4, 3]];
console.log(getValidPassword(loggedPasscodes));
uj5u.com熱心網友回復:
我首先檢查每個陣列的第一個值以剔除無趣的值。任何匹配都會執行我的第二個回圈,并且在任何檢測到它時甚至會取消。
如果進行了完全匹配,您將回傳結果顯示在評論中或推送它并繼續查找更多代碼。
let loggedPasscodes = [
[1, 4, 4, 1],
[1, 2, 3, 1],
[2, 6, 0, 8],
[5, 5, 5, 5],
[4, 3, 4, 3]
];
function getValidPassword(loggedPasscodes) {
let Codes = [];
for (let i = 0; i < loggedPasscodes.length; i ) {
console.log("Read Array:", i);
if (loggedPasscodes[i][0] % 2 == 0) { // Check if first value is even
let GoodCode = true;
for (let x = 1; x < 4; x ) { // Let's fast check the array now
if (loggedPasscodes[i][x] % 2 != 0) {
GoodCode = false;
break; // Break if it's a waste of time (odds)
}
}
//if (GoodCode == true) Codes.push(loggedPasscodes[i]); // Build our array if there's more codes even.
if (GoodCode == true) return loggedPasscodes[i];
}
}
return Codes;
};
console.log(getValidPassword(loggedPasscodes)); // [2, 6, 0, 8]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383217.html
標籤:javascript 数组 多维数组
上一篇:如何在類陣列中填充類中的變數?
