JavaScriptで配列内の最長・最短の文字列を取得する方法
次のような文字列リテラルの配列があるとします。
const arr = ['Some', 'random', 'words', 'that', 'actually', 'form', 'a', 'sentence.'];
この配列の中から、最も長い単語と最も短い単語を返す関数を作成する必要があります。ここでは、Array.prototype.reduce() メソッドを使用し、配列全体を一度だけ走査する過程で最長・最短の単語を追跡していきます。ループを複数回実行する必要がないため、シンプルかつ効率的なアプローチです。
コード例
const arr = ['Some', 'random', 'words', 'that', 'actually', 'form', 'a',
'sentence.'];
const findWords = (arr) => {
return arr.reduce((acc, val) => {
const { length: len } = val;
if(len > acc['longest']['length']){
acc['longest'] = val;
}else if(len < acc['shortest']['length']){
acc['shortest'] = val;
};
return acc;
}, {
longest: arr[0],
shortest: arr[0]
});
};
console.log(findWords(arr));
コードの解説
このコードでは、reduce() の初期値(アキュムレータ)として、配列の最初の要素を longest と shortest の両方に設定しています。その後、各要素について分割代入で文字列の長さを取得し、以下のロジックで判定を行います。
- 現在の要素がこれまでの最長の単語より長い場合 →
longestを更新 - 現在の要素がこれまでの最短の単語より短い場合 →
shortestを更新
すべての要素の処理が完了すると、最長と最短の単語を格納したオブジェクトが返されます。
出力
コンソールには次のように出力されます。
{ longest: 'sentence.', shortest: 'a' }
-
【JavaScript】ドキュメント全体のHTMLを文字列として取得する方法を解説
Webページのソースコード全体を取得して処理したい場面は、デバッグや動的なコンテンツ操作など、JavaScript開発では意外と多くあります。この記事では、ドキュメント全体のHTMLを文字列として取得する方法を、具体的なコード例とともにわかりやすく解説します。 innerHTMLプロパティを使った取得方法 ドキュメント全体のHTMLを文字列として取得するには、document.documentElementのinnerHTMLプロパティを利用します。 document.documentElement.innerHTML; document.documentElementはHTML文書のルート要
-
JavaScriptで文字列内の最長の単語を検索する方法
文字列から最長の単語を見つけるJavaScript関数文字列を唯一の引数として受け取り、その文字列を走査して最も長い単語を見つけて返すJavaScript関数を作成する方法を解説します。例入力文字列が以下の場合を考えてみましょう。const str = Coding in JavaScript is really fun;この場合、出力は次のようになります。const output = JavaScript;コード例以下が実際のコードです。 len){ acc = val; }; return acc; }, ); return word;