オブジェクト内に特定のキーを含む配列を更新したいです。
例えば、下記のような talkData
というオブジェクトがあるとして、その "id": 6
のある配列の "checkedin"
の値を true に変えたい、といった場合です。
js
1let talkData = [ 2 { 3 "id": 7, 4 "checkedin": false 5 }, 6 { 7 "id": 6, 8 "checkedin": false // ここを true に変えたい 9 }, 10 { 11 "id": 5, 12 "checkedin": false 13 }, 14 { 15 "id": 4, 16 "checkedin": true 17 }, 18 { 19 "id": 3, 20 "checkedin": false 21 }, 22 { 23 "id": 2, 24 "checkedin": false 25 }, 26 { 27 "id": 1, 28 "checkedin": true 29 } 30]
試していることとしては、下記のように filter で id による絞り込みを行って push するなどを行いました。
js
1 2let currentData = talkData.filter(function(el){ 3 return el.id == 6 4}) 5 6currentData[0].checkedin = true 7talkData.push(currentData[0]) 8 9// console.log(talkData) 10
ただ、この場合ですと、
- 更新前の
"id": 6
のある配列が残ってしまっている - 更新後のデータを挿入する場所が最後になってしまう
といった問題があります。(できれば新しくデータを入れる変数を用意せず直接的に)対象の値を更新できる方法をご教示いただきたいですm(_ _)m

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/20 09:13