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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1278閲覧

【GAS】unshiftによる配列の要素追加ができない

Akira_1

総合スコア10

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2021/09/22 02:59

やりたいこと

商品管理シートから、別システム取り込み用のデータを出そうとしています。
大元のspreadsheetから、特定の条件に合致する商品を抽出し、その後必要な列だけ抜き出し、最後に先頭行に項目名をつけて出力ということがしたいです。

GAS

1function sort() { 2 const ss = SpreadsheetApp.getActiveSpreadsheet(); 3 const sh = ss.getSheetByName("商品管理"); 4 let lastRow = sh.getLastRow(); 5 let lastCol = sh.getLastColumn(); 6 7//抽出する条件項目(A1セルに記載)を取得 8 const range = sh.getRange('A1'); 9 const planNo = range.getValue() 10 11 //表のデータ取得(リストは9行目から) 12 let arr = sh.getRange(9,1,lastRow,lastCol).getValues(); 13 14 //特定の条件に合致するものを抽出 15 arr= arr.filter(elm => (elm[23] === planNo)); 16 17 //必要な列の取り出しと並び替え 18 arr= arr.map(elm => [elm[4],elm[6],elm[7],elm[14],elm[16],elm[20],elm[21],elm[12]]); 19 20 //先頭にタイトル行追加 21 arr.unshift = (["SKU","ASIN","商品名","仕入金額","国内送料/個","納品費用合計","国際送料","納品数"]); 22 Logger.log(arr); 23}

この続きはここでは書いていないですが、配列として取り出した後は、csvファイルとして保存します。

解決したいこと

unshiftさせた先頭の項目名が出てこず、項目名以外の配列がそのまま出力されてしまいます。
ログを確認すると、なぜか配列の最後にunshiftという列が追加されています。
他のpushなどの配列操作を試しましたが同様に最後に関数名?の配列ができてしまいます。
イメージ説明

先頭行に項目名をつけて、最終的にこのような配列を出したいのですが、解決方法ご教示いただけませんでしょうか。
イメージ説明

項目名だけ残した別のシートに貼り付けということはできるのですが、シートを増やしたくないので、できれば配列内で解決したいです。
宜しくお願いいたします。

配列操作参考

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

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

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

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

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

guest

回答1

0

ベストアンサー

GAS

1arr.unshift = (["SKU","ASIN","商品名","仕入金額","国内送料/個","納品費用合計","国際送料","納品数"]);

やりたいのはunshiftメソッドの呼び出しなので

GAS

1arr.unshift(["SKU","ASIN","商品名","仕入金額","国内送料/個","納品費用合計","国際送料","納品数"]);

では?

投稿2021/09/22 03:38

itagagaki

総合スコア8402

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

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

Akira_1

2021/09/22 03:42

ありがとうございます! 解決しました! 初歩的なミスでした。。ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問