问题描述
这种情况应该是在开发中经常会遇到,后端直接返回一个object
对象集合,但是前端需要的数据又是一个数组,在这种情况下面就需要去转换这个对象
业务场景
这里只是记录我遇到的使用场景和解决方案,如有不足请多见谅~~
我使用的场景是需要一个数组用来渲染一个table
表格,但是后端直接把所有的信息的放在一个数组里面(找他沟通,说是数据只能这么拿到放在一个对象里面,返回数组不好返回,好吧那就只能自己想办法了)
这里我的处理方式是将所有的数据全部都拿到,然后在将数据进行分类,将一个类型的数据以object
的形式放在一个数组里面,这样就会有几个数组对象,最后将这几个数组对象利用es6解构赋值
组成一个新的数组
上代码:
this.discountData = data
let arr = []
arr.push({ name: '活动', discountMoney: this.discountData.activityDiscountAmout, discountName: this.discountData.activityName, discountRemark: this.discountData.remark })
let arr1 = []
arr1.push({ name: '优惠券', discountMoney: this.discountData.couponDiscountAmout, discountName: this.discountData.couponName, discountRemark: '' })
let arr2 = []
arr2.push({ name: '折扣', discountMoney: this.discountData.agaentDiscount, discountName: '', discountRemark: '' })
let arrLast = []
arrLast.push(...arr, ...arr1, ...arr2)
for (let i = 0; i < arrLast.length; i++) {
if (arrLast[i].discountMoney > 0) {
this.discountInfoData.push(arrLast[i])
}
}
最后的for
循环说将不符合显示的数据过滤掉