##はじめに
現在JavaScriptを学習&復習をしています。
プログラミング学習においてこれとこれの使い分けは?という疑問が生まれてくると思います。
その中の一つである複数のデータを一つにまとめるデータ、配列とオブジェクト。
使い分けとそれぞれの特徴について深ぼれたら良いなと思います。
結論、一つにまとめるデータですが配列とオブジェクトは持っている機能が違う為、データを処理する際にどちらが向いているのか考える必要があるのですが、判断するのはなかなか難しい場合もあります。
##選びやすい分類方法
あくまでもイメージですが
エクセルなどの表計算を思い出してください。
あるデータをJavaScriptで使うときに、そのデータをエクセルに入力するとして、
「縦に並べて入力したいか」「横に並べて入力したいか」を思い浮かべてください。
そのデータを縦に並べたくなるのであれば、配列が向いています。
##配列
###例 都道府県などのリスト
|1|北海道|
|:---:|:---:|
|2|青森|
|3|沖縄|
↓
<script>
const prefectures=['北海道','青森 ','沖縄'];
console.log(prefectures);
</script>
###例 やることリスト
|1|美容院|
|:---:|:---:|
|2|犬のトリミング|
|3|ジム|
以上は縦に並べたくなるデータですが、一方で横に並べたくなるものですとオブジェクトが向いています。
データベースなどがいい例えです
1つのものに紐づく複数のデータを管理する場合はオブジェクトの方が好ましいです。
##オブジェクト
###例 商品の価格や在庫数など
item | cost | stock |
---|---|---|
apple | 300 | 15 |
↓ |
<script>
let fruits={item:'apple',cost:300,stock:15};
console.log(fruits);
</script>
以上が大まかな使い分けですが
その中で条件を入れた場合、縦横に広がる表となります。
##配列とオブジェクトを組み合わせたもの
やることリストに「やること・期限・優先順位」を追加した場合
todo | due | priority | |
---|---|---|---|
1 | 美容院 | 6/20 | 1 |
2 | 犬のトリミング | 7/1 | 3 |
3 | ジム | 6/22 | 2 |
上記のように単なるやることリストではなく、その中で条件を入れた場合、縦横に広がる表となります。
このようなデータを管理する場合は配列とオブジェクトを組み合わせて管理します。
##終わりに
プログラミングにおいて最初に説明した通り
似たような文法があり、どのような使い分けをするのかと疑問に思うことがちらほらありますが理解できた部分だけ投稿させていただきました。
今回のような判断は経験などが必要かと思いましたので随時具体的に登校できたら良いと思います。