はじめに
この実験では、JavaScript を使ってカンマ区切り値 (CSV) データを 2 次元配列に変換する方法を探ります。CSV 文字列を入力として受け取り、それを配列の配列に変換する CSVToArray() 関数を使います。この実験は、CSV データを扱い、JavaScript を使って操作する方法を理解するのに役立ちます。
CSV を配列に変換する
カンマ区切り値 (CSV) 文字列を 2 次元配列に変換するには、次の手順に従います。
- ターミナル/SSH を開き、コーディングを開始するために
nodeと入力します。 Array.prototype.indexOf()を使って最初の改行文字 (\n) を見つけます。omitFirstRowがtrueに設定されている場合、最初の行 (タイトル行) を削除するためにArray.prototype.slice()を使います。String.prototype.split()を使って各行に対して文字列を作成します。- 各行の値を指定された
delimiterを使って区切るためにString.prototype.split()を使います。 - 2 番目の引数
delimiterを指定しない場合、既定の区切り文字','が使用されます。 - 3 番目の引数
omitFirstRowを指定しない場合、CSV 文字列の最初の行 (タイトル行) が含まれます。
CSV を配列に変換するコードは次のとおりです。
const CSVToArray = (data, delimiter = ",", omitFirstRow = false) =>
data
.slice(omitFirstRow ? data.indexOf("\n") + 1 : 0)
.split("\n")
.map((v) => v.split(delimiter));
次の例を使って関数をテストできます。
CSVToArray("a,b\nc,d"); // [['a', 'b'], ['c', 'd']];
CSVToArray("a;b\nc;d", ";"); // [['a', 'b'], ['c', 'd']];
CSVToArray("col1,col2\na,b\nc,d", ",", true); // [['a', 'b'], ['c', 'd']];
まとめ
おめでとうございます!CSV を配列に変換する実験を完了しました。技術力を向上させるために、LabEx でさらに多くの実験を行って練習してください。