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

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

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

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

JavaScript

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

Q&A

解決済

2回答

9379閲覧

GASの配列を行列を転置したい

sunglass

総合スコア303

Google Apps Script

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

JavaScript

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

0グッド

0クリップ

投稿2020/04/01 06:41

・JavaScriptで二次元配列の行列を転置するワンライナー
https://qiita.com/kznr_luk/items/790f1b154d1b6d4de398

参考にして行列の転置を試してみたのですが上手くいきません。

転置後の配列が[名言A, 偉人A, 名言B, 偉人B...]の形にしたいです。

// 配列A var meigen_array =[名言A, 名言B, 名言C, 名言D....] // 配列B var ijin_array =[偉人A, 偉人B, 偉人C, 偉人D....] // シート取得 const sheet = SpreadsheetApp.getActiveSheet(); // シート最終行 const lastRow = sheet.getLastRow(); const transpose = a => a[0].map((_, c) => a.map(r => r[c])); const array = [ [ meigen_array ], [ ijin_array ] ]; Logger.log(transpose(array)); // 結果 [名言A, 名言B, 名言C, 名言D....], [偉人A, 偉人B, 偉人C, 偉人D....]

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

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

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

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

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

guest

回答2

0

ベストアンサー

arrayへの入れ方がすこし違いますね。
あと、transpose()の内容だと配列の配列になりますね。(参考先の記事と質問者が求めている形式が異なっている)

求めている形式にしたいのであれば、Array.prototype.flat() - JavaScript | MDNで深さ1の配列にしてあげて下さい

あと、Lodash _.zip([arrays])についても調べてみて下さい。

js

1 const array = [ 2 meigen_array , 3 ijin_array 4 ]; 5 6console.log(transpose(array)); 7// [ [ '名言A', '偉人A' ], 8// [ '名言B', '偉人B' ], 9// [ '名言C', '偉人C' ], 10// [ '名言D', '偉人D' ] ] 11 12console.log(transpose(array).flat()); 13// [ '名言A', '偉人A', '名言B', '偉人B', '名言C', '偉人C', '名言D', '偉人D' ]

投稿2020/04/01 08:02

編集2020/04/01 08:07
oikashinoa

総合スコア2826

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

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

sunglass

2020/04/01 08:21

無事出来ました!ありがとうございます。
guest

0

JavaScript

1 const meigen_array = ['名言A', '名言B', '名言C', '名言D']; 2 const ijin_array = ['偉人A', '偉人B', '偉人C', '偉人D']; 3 const array = meigen_array.reduce((arr, mg, i) => arr.concat(mg, ijin_array[i]), []); 4 console.log(array);

投稿2020/04/01 08:33

編集2020/04/01 08:40
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問