配列の割当て(重複文を使用)


[Assignment]
divideArrayInHalf関数を次のように実装してください.
divideArrayInHalf関数はarrayをパラメータとして受け入れる.この配列は数値のみで構成され、5つの要素(要素)があります.
divideArrayInHalf関数は、パラメータとして入力された配列から新しい構成の配列結果を返します.
array要素では、10以下の要素はresultの一番前を返し、10以上の要素はresultの一番後ろに再構築された配列を返します.
再構築の順序は、配列の最後の要素から最後の要素です.つまり、配列された後の要素から再構築してください.
例えば、入力パラメータの配列が[1,20,10,5100][1,20,10,5100]である場合
結果配列の作成順序は次のとおりです.[100][5, 100]
[10, 5, 100][10, 5, 100, 20]
[1, 10, 5, 100, 20]
したがって、次の結果を返す必要があります.
[1, 10, 5, 100, 20]
今回問題を解いた時、ゆっくりと水コードを書きました.
しかし、解いても間違いはなく、間違いでも答えが出なかったので慌てたが、俊英の助けで間違いを見つけた.結果は出ましたが、これは問題が望む結果値ではありません.私が見逃した部分は、並べられた後の要素から再構築し、前の順序で書きました.
for(i=0; i < array.length; i++)
だから私が考えているのは以下のコードです.
for(i=array.length -1; i === 0; i--)
すると、結果値は空の配列しかありません.
これは当然の結果だ.複文の形を正しく理解しておらず、例に沿って探して書いただけで、惨事が起きた.
for ([initialization]; [condition]; [final-expression])
statement
  • condition
    反復ごとに評価する式.評価結果が真の場合はstatementを実行します.この式が入力されていない場合、計算結果は常に真です.計算結果が偽の場合、for文はすぐにスキップされます.
    -mdn
  • アーキテクチャ
    for(変数初期化(起点);条件式(到達点と繰返し回数);増減式(ステップ){
    条件式がtrueの場合に実行されるインプリメンテーション
    }
  • https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/for
    i === 0;評価すれば価格が嘘になるので、最初から次のようにします.
    この問題を修正するには、iが有効な配列インデックス値(0より大きい整数)であるかどうかを判断する式を記入する必要があります.
    (let i = array.length -1; i >= 0; i--)
    最終コードの作成とテストに合格しました
    // Assignment - 다음 함수 안에 코드를 구현하세요
    function divideArrayInHalf(array) {
        let result = [];
        // console.log(array[array.length-1])
        //우선 배열 인자의 모든 값들을 확인하는 반복문을 만들어야 한다.
        
        for(let i = array.length -1; i >= 0; i--){
              //그리고 각각의 배열을 조건문으로 10이하인지 아닌지를 구분해야 한다.
          if(array[i] <= 10) {
            //10이하인 경우에는 맨 앞으로 보낸다.
            result.unshift(array[i]);
          } else {
            //그 밖의 경우 맨 뒤로 보낸다.
            result.push(array[i]);
          }
        }
      return result;  
    
    }
    
    console.log(divideArrayInHalf([1, 10, 5, 100, 20]));
    
    // 아래의 코드는 절대로 수정하거나 삭제하지 마세요.
    module.exports = {divideArrayInHalf};