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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

JavaScript

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

Q&A

解決済

2回答

386閲覧

プログラムの動きをわかりやすく説明して欲しい

pypanman

総合スコア15

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

JavaScript

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

0グッド

0クリップ

投稿2017/09/12 06:41

下記のプログラムですが、ソートしているのはわかるのですが、いまいち理解できません。
わからないのはelse ifが続くあたりです。

わかりやすく説明してもらえませんでしょうか?
雑な質問で申し訳ないのですが、よろしくお願いします。

参照元

/** * Sorts the data in the spreadsheet into ascending date order. */ function sortReportRows() { var spreadsheet = validateAndGetSpreadsheet(); var sheet = spreadsheet.getSheetByName('Report'); var data = sheet.getDataRange().getValues(); var reportRows = data.slice(5); if (reportRows.length) { reportRows.sort(function(rowA, rowB) { if (!rowA || !rowA.length) { return -1; } else if (!rowB || !rowB.length) { return 1; } else if (rowA[1] < rowB[1]) { return -1; } else if (rowA[1] > rowB[1]) { return 1; } return 0; }); sheet.getRange(6, 1, reportRows.length, reportRows[0].length) .setValues(reportRows); } }

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

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

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

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

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

guest

回答2

0

ソートとは、一般的に、ある集合 (たとえば人類) から要素を二つ持ってきたら、その要素間に必ず成立する大小関係をもとに、元の集合の部分集合 (3 年 2 組の生徒全員) を順に並べることです。この大小関係をどうするか、はいろいろ候補があります。身長の低い順とか、氏名の五十音順とか。

JavaScript では、配列のソート関数 Array.prototype.sort() の引数に、「与えられた二つの要素の大小を決定する関数」を渡すことができます。reportRows.sort(function(rowA, rowB) { ... で、rowA のほうが先になるようにソートしてほしい場合は負の値を返します。rowArowB が同等なら 0、rowB のほうが先になるようにソートするなら正の値を返します。

投稿2017/09/12 06:59

unau

総合スコア2468

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

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

0

ベストアンサー

function(rowA,rowB)は2つの行のうち、どちらが大きいかを決める関数です。
sort関数は、この関数を使って、各要素の大小を比較して並べ替えます。
実際にどのように並べ替えているかはsortがよろしくやってくれるので、考えなくてよいです。

どちらが大きいかはif~else ifにて、以下のルールで行っています。

  1. 行がないか行のの要素が0(列がない)なら小さい
  2. 行の1番(列)目(=date)の値を比較

投稿2017/09/12 06:56

can110

総合スコア38262

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

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

pypanman

2017/09/12 09:57 編集

sort関数というものがあって、並べ替えの順番を指定する記述がif~else ifということですね。 理解できました。 他の皆さんもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問