2017-12-18 9 views
-2

配列に正しいパスコードを見つけたら、残りの作業を行います。私たちはこれについてさらに情報を開示することはできません、ごめんなさい。 最初の配列の各エントリはパスコードを表します - 奇数桁のないパスコードを検索します。
- パスコードごとに、偶数桁数を表示してください。 - 数字に奇数がない場合は、見つかったことを示し、端末の数を1つ増やしてください。どうすればよいですか? javacript array exercise

var passcodes = [ 
 
[1, 4, 4, 1], 
 
[1, 2, 3, 1], 
 
[2, 6, 0, 8], 
 
[5, 5, 5, 5], 
 
[4, 3, 4, 3], 
 
];

ので、私は私が考えることができ、ほぼすべてのものを試してみました。モジュロ、関数、forループと私はそれを得るように見えることはできません。私は初心者です。これは私がしなければならない重要な運動です。しかし、私は何をしますか?それは各パスコードの偶数の桁数を求めるので、配列内の配列を取得してから、偶数の値を見つけることがわからないコードを作成する必要があります。私はつまらないよ

+0

あなたのコードを投稿してください。 –

+0

考えてみてください。そして、それが最初に助けにならなかったら、もっと考えてください。あなたは最終的にそれを理解するでしょう。 – Ivan

+2

あなたはどのような解決策を試しましたか?あなたはそれを共有できますか? –

答えて

0

私はあなたが何を意味しているか分かりません...しかし、私はあなたの質問から理解できるものすべてを行います。それはあなたの質問がStackOverflowのために本当に適していません:)

var passcodes = [ 
 
[1, 4, 4, 1], 
 
[1, 2, 3, 1], 
 
[2, 6, 0, 8], 
 
[5, 5, 5, 5], 
 
[4, 3, 4, 3], 
 
]; 
 

 
    
 
var aPassCode; 
 
    while(aPassCode = passcodes.shift()){ 
 
    for(var i=0,evenCount=0,totalCount=aPassCode.length;i<totalCount;i++){ 
 
     if(aPassCode[i] % 2 == 0)evenCount++; 
 
    } 
 
    if(evenCount == totalCount){ 
 
     console.log('all digits even here: ' + aPassCode.join(',')); 
 
    }else{ 
 
     console.log(aPassCode.join(',') + ' contains ' + evenCount + ' even digits.'); 
 
    } 
 
    }

+0

このコードは本当にうまくいきますが、私はそれを本当にうまく理解し、Codeacademyの方法に基づいてこれに代わる方法を見つける必要があるので、この回答を練習に提出しません。 「明らかに彼女はこれを自分でやっていない」 –

1

、あなたは少なくとも何かを書いて、あなたが得るどのくらい見てみてください役立つことを願っています。

とにかく、奇数のない配列を見つけるには、のパスコードの要素を繰り返してみたいと思うようです。

最初のタスクは、番号が偶数であるかどうかを判断する方法です。これはモジュラス2から残りの部分を探すのと同じくらい簡単です。余りがゼロの場合、数値は偶数です。それ以外の場合は奇数です。

そこで簡単なテストである:(!)0型は偽に変換するので

var isEven; 
if (x % 2 == 0) { 
    isEven = true; 
} else { 
    isEven = false; 
} 

はなく、操作者が値のtruthinessを反転ブールに結果を変換する、上記に書くことができる。

var isEven = !(x % 2); 

あなたのタスクはいない奇数番号の要素を見つけることだけだった場合、私はテストがfalseを返すとすぐに返しArray.prototype.every、またはArray.prototype.someを、使用したい配列を反復処理するために多くの方法がありますどのテストが再開するとすぐに戻ります真実になります。

ただし、この場合、各要素の偶数の数を数え、すべての偶数で最初の要素を探したいとします。 1つの方法は、配列を繰り返し処理し、要素内の偶数の数を書き出し、そのすべての偶数がある場合にも書き込むことです。出力がどのようになると予想されていないので、私はちょうど推測しました。

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.'); 
 
});

関連する問題