
②「Vol.4 オブジェクト:ノンプロ研初心者向けプログラミング講座【GASコース第9期】
↓この続きです。
講座当日のtogetter
GASのデータ型
数値型(Number)
文字列型(String)
真偽型(Boolean)
配列型(Array)
オブジェクト型(Object)
配列
・インデックスをキーとするデータの集合
・記法(リテラル)[10, 20, 30] ['ABC', true,100]
オブジェクト
・プロパティをキーとするデータの集合
・記法(リテラル){x:10, y:20, z:30} {name:'Taro', age:25}
GASのデータ型はシンプルに5つだった。
配列を学んだ後にオブジェクトに触れると、配列に似ているがちょっと違うやつだなと思える。括弧の形が違う、配列の値に相当する部分が x:10 のようにペアになっている。
オブジェクトリテラル(記法、書き方)
{プロパティ1: 値1, プロパティ2 :値2, …}
{name: 'Bob', gender: 'male', age: 25}
プロパティは任意の文字列となる。プロパティの箇所に書くと、自動的に文字列に変換されるらしい。
あんまり気にしていなかったが、配列同様、変数や定数として、代入/定義できる。
const person = {name: 'Bob', gender: 'male', age: 25};
オブジェクトの参照法 ドット記法とブラケット記法
書きやすいのはドット記法
ブラケット記法はプロパティを変数・定数で指定したいときに便利
↓ドット記法
↓ブラケット記法
ドット記法は、htmlにおいて、スラッシュでフォルダ階層を潜っていくのに似ている。
APIでデータとってきてJSONから取り出すときにこんな感じで書くよね。#ノンプロ研 #GAS初級講座
— サスケ (@gomame_socks) May 28, 2021
確かに、天気予報botを作ったときに、天気情報を取り出すときもこんな感じだった。
そういえば、bracket とは?ブランケットじゃないよ。
持ち送り、腕木、腕金、張り出し棚受け、(腕木で支えられた)張り出し棚、角括弧、丸括弧、かぎ括弧、(同類として区分される)グループ
プロパティの追加、値の上書き
ここで注意としては、スペルミスすると新たなプロパティが作成されてしまう、ということだ。
↓Bobを上書きしようとして、name をnamaとスペルミスした場合の例。
このようなスペルミスを防ぐ意味でも「打たない」でコードを作成していく必要がある。サジェストやコピーを活用しよう。
↓プロパティには変数や定数を使用することもできる。
for...in文
keyにはプロパティが格納
要素はresults[key]
for in文は取り出し順が保証されていません、というところが注意ポイント。
for of は配列で活躍。
for in はオブジェクトのすべてのプロパティについて繰り返す。
演習4-05
引数としてオブジェクトを渡すと、その内容すべてを「プロパティ: 値」という形式でログ出力する関数を作成してみましょう。
また日本語がよくわからなくて不安になってきた。
下記のコードを回答した。
// 回答 numbersとして定義したオブジェクトを引数に渡して、
// getnumbers関数で仮引数としてnumbers=objectになり、
// numbersオブジェクトのkey=プロパティの分、forを回してログ出力する、
// という理解
function myFunction4_05() {
const numbers = { Num01: 85, Num02: 70, Num03: 65 };
getnumbers(numbers);
}
function getnumbers(object) {
for (const key in object) {
console.log(`${key}: ${object[key]}`);
}
}
続く。
いいなと思ったら応援しよう!
