質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

797閲覧

ObjectをCSVに変換する際に1列余計な列を消したいです。

sho.cat

総合スコア5

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2021/12/20 14:22

編集2021/12/20 14:56

前提・実現したいこと

objectをCSVに変換したいです。
調べた結果、下記のようなコードで変換できることが分かりました。
ですが、余計な列ができてしまいます。一番左の列が不要なので消したいと考えております。
どうかご教授いただけますと幸いです。

該当のソースコード

typescript

1 const csv = this.ConvertToCSV(object, ["id", "name"]); 2 3 ConvertToCSV(objArray: object, headerList: Array<string>) { 4 let array = typeof objArray != "object" ? JSON.parse(objArray) : objArray; 5 let str = ""; 6 let row = "No,"; 7 8 for (let index in headerList) { 9 row += headerList[index] + ","; 10 } 11 12 row = row.slice(0, -1); 13 str += row + "\r\n"; 14 for (let i = 0; i < array.length; i++) { 15 let line = i + 1 + ""; 16 for (let index in headerList) { 17 let head = headerList[index]; 18 line += "," + array[i][head]; 19 } 20 str += line + "\r\n"; 21 } 22 console.log(str); 23 return str; 24 }

結果
No,id,name
1,01,A
2,02,B
3,03,C
4,04,D
5,06,F
6,07,G
7,08,H
8,10,J

試したこと

typescript

1 const csv = this.ConvertToCSV(object, ["id", "name"]); 2 3 ConvertToCSV(objArray: object, headerList: Array<string>) { 4 let array = typeof objArray != "object" ? JSON.parse(objArray) : objArray; 5 let str = ""; 6 let row = ""; 7 8 for (let index in headerList) { 9 row += headerList[index] + ","; 10 } 11 12 row = row.slice(0, -1); 13 str += row + "\r\n"; 14 for (let i = 0; i < array.length; i++) { 15 let line = ""; 16 for (let index in headerList) { 17 let head = headerList[index]; 18 line += "," + array[i][head]; 19 } 20 str += line + "\r\n"; 21 } 22 console.log(str); 23 return str; 24 }

rowのNoを消して
変数 lineのi + 1 を削除した結果が下記のようになってしまいます。

id,name
,01,A
,02,B
,03,C
,04,D
,06,F
,07,G
,08,H
,10,J

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

おっしゃっている「行」とは「列(カラム)」のことですね?

JavaScript

1 line += "," + array[i][head];

そりゃそうなるでしょう。

こう直したらどうですか?

JavaScript

1 if (line !== "") { 2 line += ","; 3 } 4 line += array[i][head];

投稿2021/12/20 14:47

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sho.cat

2021/12/20 14:55

ご回答ありがとうございます。 おっしゃる通り、列カラムです。 おかげで解決することができました。 改めてお礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問