往一個陣列物件裡面傳值,如果id已經存在就替換id同一個物件裡面的另一個值。沒有就新增

夏天想發表於2018-11-08

<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);

        }

   }

}

 

相關文章