JavaScriptで多次元配列を文字列に変換する方法
JavaScriptでは、入れ子になった配列(ネストされた多次元配列)に含まれるすべての値を連結し、1つの文字列へ変換する関数が必要になる場面があります。本記事では、各要素の末尾に半角スペースを付けながら文字列を組み立てる方法を解説します。
実装のポイント
Array.isArray()を使って、要素が配列かどうかを判定する- 配列だった場合は、自分自身を再帰的に呼び出して中身を処理する
- 各要素の後にスペースを追加して連結する
コード例
実際のコードは以下の通りです。
const arr = [
'this', [
'is', 'an', [
'example', 'of', [
'nested', 'array'
]
]
]
];
const arrayToString = (arr) => {
let str = '';
for(let i = 0; i < arr.length; i++){
if(Array.isArray(arr[i])){
str += `${arrayToString(arr[i])} `;
}else{
str += `${arr[i]} `;
};
};
return str;
};
console.log(arrayToString(arr));
コードの解説
arrayToString 関数は、受け取った配列を for ループで先頭から順に走査します。Array.isArray() の判定により要素が配列だと分かった場合は、その配列に対して自身を再帰的に呼び出すことで、どれだけ深くネストされていてもすべての値を取り出せます。配列以外の要素(文字列などのリテラル)であれば、そのまま文字列として連結します。いずれの場合も、各要素の末尾には半角スペースが1つ追加されるため、単語同士がきれいに区切られた読みやすい文字列になります。
実行結果
コンソールには次のように出力されます。
this is an example of nested array
まとめ
再帰呼び出しと Array.isArray() を組み合わせれば、階層の深さに左右されずに多次元配列を1つの文字列へ変換できます。flat() メソッドで配列を平坦化してから join(' ') で連結する方法もありますが、再帰による実装は区切り文字やフォーマットを自由にカスタマイズでき、柔軟性が高いのが魅力です。用途に応じて使い分けてみてください。
-
JavaScriptで文字列を日付に変換する方法
日付を表すのに最もおすすめの形式は「yyyy-mm-dd」です。これはISO 8601(国際標準規格)に準拠した形式で、国や地域による表記の違いによる混乱がなく、誰にとっても分かりやすいのが特徴です。JavaScriptでは、この形式の文字列からDateオブジェクトへの変換はとても簡単です。文字列をそのままDateコンストラクタに渡すだけで、自動的に解析してくれます。基本的な例let a = 2019-08-10; console.log(new Date(a));出力結果上記のコードを実行すると、次のような出力が得られます。Sat Aug 10 2019 05:30:00 GMT+0530
-
JavaScriptで配列をSet(セット)に変換する方法
JavaScriptで配列をSetに変換するときの基本JavaScriptでは、Setオブジェクトを使うことで、配列から重複しない一意の値だけを持つコレクションを簡単に作成できます。SetはES6(ECMAScript 2015)で導入された組み込みオブジェクトで、同じ値が複数回追加されても自動的に1つにまとめられるのが特徴です。変換自体は非常にシンプルで、new Set(配列)と書くだけで完了します。コード例:配列からSetへの変換以下は、重複を含む配列をSetに変換して画面に表示するサンプルコードです。<!DOCTYPE html> <html lang=ja> &