迴圈for資料點選一個push一次 裡面有的覆蓋 沒有的新增進去

YYY1920發表於2019-11-07

在return定義cc=[]

  vv(){
        let c = {}
        // 這個陣列是每次點選都需要初始化為空的
        let zjy = []
        // 模擬的資料
        var random = new Array(0,1,2,3,4,5,6,7,8,9);
        this.code = Math.floor(Math.random()*10)
        // 當陣列為空,直接push
        if(this.cc.length == 0){
          c['id'] = this.code
          this.cc.push(c)
        }else{
          // 當陣列不為空,迴圈this.cc,然後把this.cc的值放入zjy這個陣列中
          for(let i=0;i<this.cc.length;i++){
            zjy.push(this.cc[i]['id'])
          }
          console.log('code值:'  + this.code)
          console.log('陣列值:' + zjy)
          // 這裡拿到zjy這個陣列,然後通過includes方法進行判斷,判斷zjy這個陣列中是否包含code這個資料
          // 為true的時候,意味著包含
          if(zjy.includes(this.code) == true){
            console.log(this.code + '已存在')
            // 當存在的時候,通過indexOf獲取到存在的下標
            let index = zjy.indexOf(this.code)
            console.log('下標:' + index)
            // 這個時候通過下標把對應的值替換
            // this.cc[index].uid就是你原來的uid值,現在需要把他替換掉
            this.cc[index].uid = this.code  //這裡的this.code  是你當前新增的那個uid
            return false;
          }else{
            // else就是為false的時候,直接把code放進this.cc陣列中
            c['id'] = this.code
            this.cc.push(c)
          }

        }
      }

相關文章