往一個數組物件裡面傳值,如果id已經存在就替換id同一個物件裡面的另一個值。沒有就新增
<div @click='choiceAnswer1(item ,keyindex)' v-for="(item,keyindex) in arrayData">{{item}}</div>
choiceAnswer1(data,index){//點選觸發的函式
var answer1=[];
var flag=false;//這裡有個flag標記,用處下面介紹
answer1.push(data.answer);
var fullanswer={ //是把他放在結果數組裡儲存起來。陣列的形式是[{},{},{}] 就是這樣的值
tlid:data.tlid,
answer: answer1 ,//這裡的answer是個陣列哦
}
if(this.dataResult.length==0){//把結果放在this.dataResult裡面。這裡判斷如果他是空的說明是第一次點選.就先放進去一個
this.dataResult.push(fullanswer);
}else{//接下來的點選。就要判斷啦
for(var i in this.dataResult){
if(this.dataResult[i].tlid==data.tlid){//如果有id相等的。就把這個id對應的answer對應的值改成現在點選的這個。
this.dataResult[i].answer=[];
this.dataResult[i].answer.push(data.answer);
flag=true;//如果有相同的flag標記改變。
}
}//結束for迴圈
if(flag==false){//迴圈結束這個值是false說明沒有找到tlid相同的內容。就把這個值push進去。
this.dataResult.push(data.answer);
}
}
}