JSの作り付けのSPIT機能を使用せずにストリングを分割する方法
8449 ワード
おい、仲間のDEVS、これは私の最初のdevブログポストです、そして、今日、私は最も一般的に尋ねられたインタビュー質問の1つをカバーします
JSの作り付けの分割機能を使用せずにストリングを分割する方法?
プロセス
私はプログラムの各ステップで番号をマークし、何が起こっている詳細に説明します.
ここでは、後で使用される空の文字列を宣言します. 3番目のステップ242479172では、引数を介して与えられた文字列をループします.インデックス(i = 0)で開始します.停止条件は、文字列の長さ(str . length)になります.ここで、if文を使用してチェックを行い、現在の反復要素が空の文字かどうかをチェックします.空の文字でない場合は、ステップ4に進んでいます. ここでは、以前に宣言したtempstring文字列を使用します.
ループ内の現在の反復文字が空の文字でない場合は、その文字をテンプメント文字に追加します.
現在の反復文字が空のchar ('')であれば、else節に移動します(ステップ6 ). 現在、空白のない文字列を持っているので、配列pushメソッドを使用して、この文字列をresultarrayにプッシュできます.
これは私たちの最初の反復です、そして、我々がストリング「フロントエンドdev」を提供するならば、「前部」語は現在配列に押し込まれました、そして、我々は次のステップに動きます. この次の手順では、次の繰り返しを新しい空の文字列から開始したいので、tempstringを空に設定します.次の繰り返しでは、前の文字列が再び配列に配置されます. Resultarrayを返します. ループが文字列に残っている単語がないまで繰り返します
この関数を文字列で実行した場合の結果を見てみましょう
「人生はクールだ」
さて、あなたはすべての権利を持って、最後の単語は、配列に追加されていないと我々のコードのいくつかの調整を行う必要があります.
これは私たちのステップ4ではif文が空の文字('')をチェックしているためですが、最後の単語“cool”の後に空き領域がないので、最後の単語を追加しません.
このようなコードを変更し、表示するマイナーチェンジを追加します.
説明
マイナーステップ
私はTempStringにトリムメソッドを追加しました.なぜなら、どんな場合でもユーザーが単語間の複数のスペースを持つ文字列を提供するなら、これはそれらを排除します.
新しいステップ
新しいステップで特別な何も、私はちょうど余分なチェックを付け加えました、ストリング全体が繰り返されていて、最後の語も含んでいるので、どんな単語がtempstringに残っているならば、ちょうど私たちのresultarrayにそれを押してください.
現在、我々のプログラムは望ましい出力を与えます.
チェック!
ハッピーハッキング🥳
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
}
最初のステップでは、私たちは、後で私たちの分割値を格納する空の配列を単に宣言しています.ループ内の現在の反復文字が空の文字でない場合は、その文字をテンプメント文字に追加します.
現在の反復文字が空のchar ('')であれば、else節に移動します(ステップ6 ).
これは私たちの最初の反復です、そして、我々がストリング「フロントエンドdev」を提供するならば、「前部」語は現在配列に押し込まれました、そして、我々は次のステップに動きます.
この関数を文字列で実行した場合の結果を見てみましょう
「人生はクールだ」
//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"]
これを行うには多くの方法がありますが、これは私がそれをやった方法は、提案は常に歓迎している場合は、他のアイデアをどのように私はこのコードをリファクタリングすることができます.ハッピーハッキング🥳
Reference
この問題について(JSの作り付けのSPIT機能を使用せずにストリングを分割する方法), 我々は、より多くの情報をここで見つけました https://dev.to/imakki/how-to-split-string-without-using-js-s-inbuilt-spit-function-261bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol