はじめに
JavaScriptの勉強を進めています。今はオブジェクトのところを勉強しており習ったことをまとめます。
他の言語の勉強も少ししたことがあるのですが、JavaScrptのオブジェクトって便利ですね!
自分用のまとめなので間違いなどあるかもしれないのでご了承お願いします
オブジェクトとは
オブジェクトは配列と違ってから値に対して名前を付けることができます。{キー:値}と記述し、2つ合わせてプロパティと呼びます。
また、配列とは異なり{}で括ります。
const scores = [10, 20, 30, 40]; //配列の宣言
const scores = {math: 10, science: 20}; //オブジェクトの宣言
キーは基本的に''(シングルクオーテーション)で括らなくても良いらしいです。もちろん例外規定はあるんですが、自分は英数字から始まるキーを使うことはないので''で括らなくても良いと覚えておきます。
また、前回の記事同様に縦並びでの記述も可能です。
const scores = {
math: 10,
science: 20,
};
値の取得
オブジェクト名[キー]、オブジェクト.キーで値の取得を行えます。
let math_score = score['math'];
let math_score = score.math;
今の自分からしたら上の書き方のほうが配列みたいなものを扱っている感じがしてぱっと見わかりやすいです。
値を書き換え
値を書き換えたい時は以下のように書き換えます。
score['math'] = 90;
score.math = 90;
プロパティの追加
オブジェクトに存在しないプロパティを追加すればいけます。
scores.english = 85; //プロパティの追加
プロパティの削除
deleteを使って削除します。
delete scores.english; //プロパティの削除
追加と削除が違う書き方だとごっちゃになります。慣れですかね...
forEach()は使えない
配列で使ったforEach()はオブジェクトに対して使うことができません。なのでforEach()を使えるようにするためにオブジェクトを配列化します。
const entries_scores = Object.entries(scores); //ObjectのOは大文字です。
entries_scoresにはプロパティの数だけ配列が入っています。scoresオブジェクトの中には2つプロパティがあるのでentries_scoresには2つ配列が入っています。配列の中身は以下です。
['math', 90]
['sicence', 20]