vue2.0中实现从对像到数组的转换

一、对像

从后台直接返回的数据,赋值给vue的变量,显示出来如下,它是对像

[ { "被评分人": "15034100248", "问卷ID": "BD20200915170817", "总分": 333, "均分": 83, "计数": 4, "name": "XX1" }, 
{ "被评分人": "13903417124", "问卷ID": "BD20200915170817", "总分": 301, "均分": 75, "计数": 4, "name": "XX2" } ]

在模版中可以通过v-for来方便的读取和使用。

二、数组

但是在js中进行计算时,用到的基本上都是数组,特别是需要绑定数据到ECharts图表上时,下面的就是数组。

[ [ "15034100248", "BD20200915170817", 333, 83, 4, "XX1" ],
[ "13903417124", "BD20200915170817", 301, 75, 4, "XX2" ] ]

那么对像怎么转换成数组了,刚开始用for来读取一下吧,结果卡壳了,百度了一下ES6有新的方法来实现。

三、对像到数组的转换

1、Object.values(obj)用来获取值

2、Object.keys(obj)用来获取键名

返回对像中的数据

 1     computed:{
 2         dataText:function(){
 3             var mainData=[];
 4             for (var i=0;i<this.fenxiData.length;i++){
 5                 var item=this.fenxiData[i];
 6                 mainData.push(Object.values(item));
 7             }
 8             return mainData;
 9         },
10     },

返回的结果如下

[ [ "15034100248", "BD20200915170817", 333, 83, 4, "XX1" ],
[ "13903417124", "BD20200915170817", 301, 75, 4, "XX2" ] ]

 

返回对像中的键名

1 dataTitle:function(){
2       var item=[];
3       if(this.fenxiData.length>0){
4             item=this.fenxiData[0];
5       }
6        return Object.keys(item);
7 },

返回的结果如下

[ "被评分人", "问卷ID", "总分", "均分", "计数", "name" ]

数据加工好以后,就可以用来绑定到Echarts中了。

posted @ 2020-09-30 09:17  wjbych  阅读(2574)  评论(0编辑  收藏  举报