话不多说上代码:
<div class="item-i" v-for="(ite,index) in item.items" :key="index" v-if="ite.teType == `0`" :class="{checked:item.num == index}" :data-value="ite.item.split(`,`)[1]" :data-secondid="item.id" :data-teType="ite.teType" :data-result="ite.item.split(`,`)[0]" @click="selected(i,index,$event)">{{ite.item.split(",")[0]}}</div> mydOption:{ items:[] } methods: { selected(a,index,e){ console.log(e.target.getAttribute('data-value')); console.log(e.target.getAttribute('data-secondid')); console.log(e.target.getAttribute('data-teType')); console.log(e.target.getAttribute('data-result')); let objs ={ "secondId":e.target.getAttribute('data-secondid'), "score":e.target.getAttribute('data-value'), "teType":e.target.getAttribute('data-teType'), "result":e.target.getAttribute('data-result') }; let Score = null; this.mydOption.items = this.unique(this.mydOption.items,objs) }, unique(arr,objs) { var res = arr.some(item=>{ //console.log(item,objs.secondId) if(item.secondId==objs.secondId){ return true } }) console.log(res) // 如果arr数组对象中含有item.secondId,就会返回true,否则返回false if(res){ // 如果存在 var index = arr.findIndex(function(item) { return item.secondId === objs.secondId; }); console.log(index);//找到相同ID对象的index arr1.splice(index,1,objs) //去重,替换数组 }else{ arr.push(objs) } return arr }, submit(){ console.log(JSON.stringify(this.mydOption)); } },总结:先判断数组中是否存在相同ID的对象,存在用splice(index,1,objs) 替换掉,不存在直接arr1.push(objs)