H5W3
当前位置:H5W3 > 问答 > 正文

js 多个对象插入同样的两个值,怎么操作,vue

在vue中data里面有三个对象

data(){
return{
select1:{id:1012589435413},
select1:{id:5487496874987},
NoticeForm:{},
Archives:{},
...... // 多个
}
},
methods:{
setItem(){
let NoticeForm = this.NoticeForm;
NoticeForm.data3 = this.select1.Id;
NoticeForm.data4 = this.select2.Id;
let Archives = this.Archives;
Archives.data3 = this.select1.Id;
Archives.data4 = this.select2.Id;
...... // 多个
}
},

上面的这是最常见的操作,有没有更简便的方法可以实现,尽量不循环

回答

DRY(Don’t Repeat Yourself)原则的目的是减少信息的重复,那怎么做到DRY,那就是代码和逻辑的重用,将代码和逻辑划分为更小的可重用单元,并通过在需要的地方调用代码来使用这些单元代码。不要编写过于冗长的方法,要进行逻辑拆分,并尽量使用现有方法中已经写好的逻辑。

针对你的代码,想要减少代码量,不用循环的话,可以把值写好,用Object.assign浅拷贝。想要再少,那就肯定是循环,循环的本质就是减少代码量

methods:{
    setItem(){
        let data = {data3: this.select1.Id, data4: this.select2.Id}
        Object.assign(this.NoticeForm, data)
        Object.assign(this.Archives, data)
        //...
        
        [this.NoticeForm, this.Archives, /*...*/].forEach(item => Object.assign(item, data))
    }
}
 let data = {data3: this.select1.Id, data4: this.select2.Id}
 this.NoticeForm={...this.NoticeForm,...data}
 this.Archives={...this.Archives,...data}

本文地址:H5W3 » js 多个对象插入同样的两个值,怎么操作,vue

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址