JSの作り付けのSPIT機能を使用せずにストリングを分割する方法


おい、仲間のDEVS、これは私の最初のdevブログポストです、そして、今日、私は最も一般的に尋ねられたインタビュー質問の1つをカバーします
JSの作り付けの分割機能を使用せずにストリングを分割する方法?

プロセス
私はプログラムの各ステップで番号をマークし、何が起こっている詳細に説明します.

    const splitString = (str) => {
      let resultArray = [];              //1
      let tempString = '';               //2
      for(var i = 0; i< str.length;i++){ //3
          if(str[i] !== ' '){            //4
            tempString += str[i];        //5
           } else{                       
            resultArray.push(tempString);//6
            tempString = "";             //7
          }
      }
      return resultArray;                //8
   }

最初のステップでは、私たちは、後で私たちの分割値を格納する空の配列を単に宣言しています.
  • ここでは、後で使用される空の文字列を宣言します.
  • 3番目のステップ242479172では、引数を介して与えられた文字列をループします.インデックス(i = 0)で開始します.停止条件は、文字列の長さ(str . length)になります.
  • ここで、if文を使用してチェックを行い、現在の反復要素が空の文字かどうかをチェックします.空の文字でない場合は、ステップ4に進んでいます.
  • ここでは、以前に宣言したtempstring文字列を使用します.
    ループ内の現在の反復文字が空の文字でない場合は、その文字をテンプメント文字に追加します.
    現在の反復文字が空のchar ('')であれば、else節に移動します(ステップ6 ).
  • 現在、空白のない文字列を持っているので、配列pushメソッドを使用して、この文字列をresultarrayにプッシュできます.
    これは私たちの最初の反復です、そして、我々がストリング「フロントエンドdev」を提供するならば、「前部」語は現在配列に押し込まれました、そして、我々は次のステップに動きます.
  • この次の手順では、次の繰り返しを新しい空の文字列から開始したいので、tempstringを空に設定します.次の繰り返しでは、前の文字列が再び配列に配置されます.
  • Resultarrayを返します.
  • ループが文字列に残っている単語がないまで繰り返します
    この関数を文字列で実行した場合の結果を見てみましょう
    「人生はクールだ」
    //input
    const testString = "dev life is cool";
    splitString(testString);
    
    //output
    ["dev", "life", "is"]
    
    
    うーん何が起こったのですか.🧐 不思議だろう.
    さて、あなたはすべての権利を持って、最後の単語は、配列に追加されていないと我々のコードのいくつかの調整を行う必要があります.
    これは私たちのステップ4ではif文が空の文字('')をチェックしているためですが、最後の単語“cool”の後に空き領域がないので、最後の単語を追加しません.
    このようなコードを変更し、表示するマイナーチェンジを追加します.
    
        const splitString = (str) => {
          let resultArray = [];              
          let tempString = '';               
          for(var i = 0; i< str.length;i++){ 
              if(str[i] !== ' '){            
                tempString += str[i];        
               } else if(tempString.trim()){     //minor change                  
                resultArray.push(tempString);
                tempString = "";             
              }
          }
          if(tempString){                      //new step
             resultArray.push(tempString);    
          }
          return resultArray;                
       }
    
    

    説明
    マイナーステップ
    私はTempStringにトリムメソッドを追加しました.なぜなら、どんな場合でもユーザーが単語間の複数のスペースを持つ文字列を提供するなら、これはそれらを排除します.
    新しいステップ
    新しいステップで特別な何も、私はちょうど余分なチェックを付け加えました、ストリング全体が繰り返されていて、最後の語も含んでいるので、どんな単語がtempstringに残っているならば、ちょうど私たちのresultarrayにそれを押してください.
    現在、我々のプログラムは望ましい出力を与えます.
    チェック!
    //input
    const testString = "dev life is cool";
    splitString(testString);
    
    //output
    ["dev", "life", "is", "cool"]
    
    
    これを行うには多くの方法がありますが、これは私がそれをやった方法は、提案は常に歓迎している場合は、他のアイデアをどのように私はこのコードをリファクタリングすることができます.
    ハッピーハッキング🥳