前提・実現したいこと
vue.jsで、指定したmap[]のkeyからvalueを取り出すメソッドを実装したいです。
詳細は下記に記載いたしました、お詳しい方、ご教示いただけますと幸いです。
html
1<div class="container" v-for="r in records" v-bind:key="record.id"> 2 3 <div class="row"><p>性別 : {{ getLabel(map_gender, r.gender) }}</p></div> 4 <!-- 期待する戻り値:"男の子" map_gender[]のvalue(1)に紐づくlabel("男の子")を取得したい。① --> 5 6 <div class="row"><p>高齢者への譲渡 : {{ getLabel(map_seniorPerson, r.senior_person) }}</p></div> 7 <!-- 期待する戻り値:"応相談" map_seniorPerson[]のvalue(2)に紐づくlabel("応相談")を取得したい。② --> 8 9</div>
javascript
1<script> 2export default { 3 data: function () { 4 return { 5 map_gender: [ 6 {value: 0, label: "女の子"}, 7 {value: 1, label: "男の子"}, //① 8 {value: 2, label: "その他/不明"}, 9 ], 10 11 map_seniorPerson: [ 12 {value: 0, label: "不可"}, 13 {value: 1, label: "可"}, 14 {value: 2, label: "応相談"}, //② 15 ], 16//......(以下略) 17 methods: { 18 getLabel(mapName, i) { // 第1引数:mapの変数名, 第2引数:数値 19 return this.mapName.find(map => map.value === i).label //指定したmapのvalueに紐づくlavelを返す 20 }, 21//......(以下略)
発生している問題・エラーメッセージ
TypeError: Cannot read property 'find' of undefined
引数でmap変数を渡していますが、それが見えていないようです。
mapがたくさんあるため、
getLabel()はどのmap変数にも使えるように引数で渡せるようにしたいのですが、
この場合、どのように書けば良いでしょうか?
お詳しい方、ご教示いただけますと幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー