前提・実現したいこと
開発環境
laravel 8.x
vue.js 2.x
以下のような配列(arrayData)を取得します。
[ { "user_id": 1, "number": 1, "other_data": ... }, { "user_id": 1, "number": 2, "other_data": ... }, { "user_id": 1, "number": 3, "other_data": ... } ]
この配列内のオブジェクトを、Vue.jsのforEachでnumber毎に一つずつ別の変数に格納したいです。
numberは開発側が定めている数で、定めた数以上は出てこず、オブジェクト同士で必ず重複のないようにできています。
ただし、配列内に全てのnumberが確実にあるわけではなく、飛ばし飛ばしの可能性があります。
試したこと
data() { return { object1, object2, object3 } }, props: { arrayData: Array }, mounted() { let ojt1; let ojt2; let ojt3; this.arrayData.forEach(element => { switch (element.number) { case 1: ojt1 = element; break; case 2: ojt2 = element; break; case 3: ojt3 = element; break; default: break; } } this.object1 = ojt1; this.object2 = ojt2; this.object3 = ojt3; }
このように、forEachの外で新たに変数を作り、代入。それをもう一度thisを使って代入しています。
求めていたことは出来ましたが、なんとなく冗長的というか、forEach内で直接代入して解決できないかなと考えています。
初歩的な質問かもしれませんが、ご回答頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/14 13:03
2021/06/14 13:13
2021/06/15 07:22