请问下es6语法有没有可以优化这种写法的

发布于 2022-09-11 20:47:40 字数 942 浏览 15 评论 0

data(){
    return {
        classify: [
            {value: '',name: 'productTotal'},
            {value: '',name: 'auctionTotal'},
            {value: '',name: 'forumTotal'},
            {value: '',name: 'shopTotal'}
        ],
        home: [
            {value: '',name: 'aaa'},
            {value: '',name: 'bbb'},
            {value: '',name: 'ccc'},
            {value: '',name: 'ddd'}
        ]
    }
}
this.$post(this.API.GET_DATATOTAL).then(res => {
    const data = res.data.data;
    this.classify[0].value = data.productTotal + '种';
    this.classify[1].value = data.auctionTotal + '种';
    this.classify[2].value = data.forumTotal + '条';
    this.classify[3].value = data.shopTotal + '家';
    
    this.home[0].value = data.aaa + '个';
    this.home[1].value = data.bbb + '个';
    this.home[2].value = data.ccc + '个';
    this.home[3].value = data.ddd + '个';
  });

以上这种写法,感觉以此类推要写很多,有没有办法可以简化呢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

许久 2022-09-18 20:47:40

可以写个方法映射取值

const make = (source, data, mapping) => 
    mapping.forEach((index, value) => source[index].value = data[value[0]] + value[1]);
    
const mapping = [['aaa', '个'], ['bbb', '个'], ['ccc', '个']];
make(this.home, data, mapping)

类似于这样,但是具体的 mapping 得你自己写,对应的字段和后缀全部配好后执行方法即可

许一世地老天荒 2022-09-18 20:47:40

res.data.data 的结构是什么样的,可以尝试下用解构语法去赋值试试呢

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文