【JavaScript】オブジェクト(連想)配列の初期化・追加・参照・更新・削除

【JavaScript】オブジェクト(連想)配列の初期化・追加・参照・更新・削除

はじめに

コジマです。

JavaScriptのオブジェクトの配列に出くわして
結構苦労してしまいました。

やっとそこそこ扱えるようになったので
まとめておきます。

チートシートっぽく使っていただけたらと思います。
網羅性を追求したものではなく、実務において必要になる技術を抽出してまとめたもの
という内容であることをご容赦ください。

配列の初期化

普通の配列の定義と同じで大丈夫です。

// オブジェクト配列の初期化
// 普通に配列でOK
let users = []

/* こうしても初期化できる。
連想配列を直接代入してOK。
let users = [
    { id: 1, name: 'Kojima' },
    { id: 2, name: 'Tanaka' },
    { id: 3, name: 'Harada' }
]
*/

要素の追加

追加するにはpushを使います。
pushに追加したいオブジェクトを丸ごと入れます。
ここではusersにidとnameを持ったオブジェクトの配列を作ってみます。

// オブジェクト配列の追加
// pushを使う
// 引数にオブジェクト入れればいい
users.push({ id: 1, name: 'Kojima' })
users.push({ id: 2, name: 'Tanaka' })
users.push({ id: 3, name: 'Harada' })

要素の参照

console.log()を使用して中身を見てみます。

// オブジェクト配列の参照
// すべてのオブジェクトを参照
console.log(users)
/* 結果
(3) [{…}, {…}, {…}]
    0: {id: 1, name: "Kojima"}
    1: {id: 2, name: "Tanaka"}
    2: {id: 3, name: "Harada"}
    length: 3
*/

// 0番目のオブジェクトを参照
console.log(users[0])
/* 結果
{id: 1, name: "Kojima"}
*/

// 1番目のオブジェクトのnameを参照
console.log(users[1].name)
/* 結果
Tanaka 
*/

地味に便利なのがJSON.stringify()関数
JSONを文字列変換して表示してくれます。

// 文字列で表示する
console.log(JSON.stringify(users))

/*
[{"id":1,"name":"Kojima"},{"id":2,"name":"Tanaka"},{"id":3,"name":"Harada"}]
*/

要素の更新

find関数を使用して更新したいオブジェクトを取得する。
そのあと書き換える。
という手順です。

KojimaをKojimanotechに書き換えてみます。

// 更新したい要素を取得する
let user = users.find((elm) => elm.id === 1)
// 書き換える
user.name = 'Kojimanotech'
// 確認する
console.log(user.name)
/*
Kojimanotech
*/

要素の削除

findIndex関数を使用して削除したい要素のインデックスを取得。
そのあとsplice関数を使用して削除します。

spliceを使用して任意の位置に要素を追加することもできますが、ここでは触れません。
気になる人はリファレンスを見てください。
http://www.htmq.com/js/array_splice.shtml

ここではKojimanotechをいなかったことにしたいと思います。

// 削除したい要素のインデックスを取得
let user_index = users.findIndex((elm) => elm.id === 1)
// 削除する(user_index番目から1個の要素を削除する。)
users.splice(user_index, 1)
// 確認する
console.log(users)
/* 結果
(2) [{…}, {…}]
    0: {id: 2, name: "Tanaka"}
    1: {id: 3, name: "Harada"}
    length: 2
*/

さいごに

オブジェクトの配列はすごく難しく感じるし癖もありますが、
実際めちゃめちゃ使います。

これは無意識に手が動くようにしておきたいところだと思いました。

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

以上、コジマでした。


JavaScriptカテゴリの最新記事