前提・実現したいこと
vue.js computedにてオブジェクトデータを配列にしたい。
###やろうとしていること
- jsonデータをaxiosで取得して、dataのallsに格納(成功)
- computedを使って、取得したallsのうち、日程表のデータをdatesに格納する。(成功)
- datesにはオブジェクトデータが格納されております。
例
{
2019/03/08:{...}
2019/03/09:{...}
2019/03/10:{...}
2019/03/11:{...}
}
このオブジェクトのキーを「値」として配列に直したい。←←←←←ここにはまっております。
//datesに格納されているオブジェクト { 2019/03/08:{...} 2019/03/09:{...} 2019/03/10:{...} 2019/03/11:{...} } //配列に変換したい ↓↓↓↓↓↓↓↓↓↓↓↓ [2019/03/08,2019/03/09,2019/03/10,2019/03/11]
###実際のソース
js
1 var vm = new Vue({ 2 el: '#test1', 3 data: function () { 4 return { 5 //全てのjsonデータを格納 6 alls: [], 7 } 8 }, 9 methods: { 10 //json情報の取得(非同期処理) 11 getPosts: function () { 12 var _this = this; 13 14 axios.get('https://example/api/event?shop_id=108') 15 .then(function (response) { 16 _this.alls = response.data.contents[0]; 17 }) 18 .catch(function (error) { 19 window.alert(error); 20 }); 21 }, 22 }, 23 computed: { 24 //allsの中から日程表だけ 25 dates: function () { 26 return this.alls.date; 27 }, 28 //配列にしたい 29 monthfirsts: function () { 30 this.dates; 31 Object.keys(this.dates).map(function (key) { 32 return this.dates[key]; 33 }); 34 }, 35 }, 36 37 })
試したこと
参考記事をもとにオブジェクトを配列変換するObject.keys(elements).mapを使用したのですが、なぜかmapされず、「error during evaluation」とdevtoolでは反応をしてしまいます。
####試したことその②
Vue.jsは気難しい(オブジェクト編)をみましたら、
this.$setをすればよいのかと思いましたが、うまく動かず。ドツボにはまっております。
vueでのobjectの取り扱いに苦労しております。
vue.jsに詳しい方がいらっしゃいましたら、ご教示をお願い致します。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
vue.js 2.5.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/06 07:54
2019/01/06 10:25
2019/01/06 10:27