亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

vue 將2個數組里面得值對應起來

vue 將2個數組里面得值對應起來

心有法竹 2018-08-02 13:05:51
如果兩個數組的id相等我就要使第一個數組里面的activeName字段改為true,我是以這個來判斷他是否加入收藏,為true就是加入為false就是沒有加入。后臺并沒有返回給我這樣一個狀態的字段是我自己加的。所以需要收藏的列表數組要與我i當前的倆對比id如果id相等就說明莫一條記錄是收藏狀態就是改寫為true. 這兩個數組怎么判斷major_id等于id的時候就使activeName字段為true:    _this.listWish.forEach(function(a) {      _this.major.forEach(function(item) {        if (item.major_id == a.id) {          _this.$set(a, 'activeName', true);          _this.$set(a, 'wishId', item.wish_id);        } else {          _this.$set(a, 'activeName', false);        }      });    });    _this.listWish.forEach(function(a) {      _this.major.forEach(function(item) {        if (item.major_id == a.id) {          _this.$set(a, 'activeName', true);          _this.$set(a, 'wishId', item.wish_id);        } else {          _this.$set(a, 'activeName', false);        }      });    });    });## 但是我這樣循環后activeName這個字段的值沒有被改寫對,全部都是false。
查看完整描述

2 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊


你這樣循環不對啊,按照你的意思

判斷major_id等于id的時候就使activeName字段為true

你這樣循環如果倒數第二個數是匹配,設成true了,倒數第一個不匹配,那不就又是false了嗎?
你可以改成for循環

for(let i = 0; i < _this.listWish.length; i ++){

    for(let j = 0; i < _this.major.length; j ++){

        if (item.major_id == a.id) {

            _this.$set(a, 'activeName', true);

            _this.$set(a, 'wishId', item.wish_id);

            break;

        } else {

            _this.$set(a, 'activeName', false);

        }

    }

}


查看完整回答
1 反對 回復 2018-08-06
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

//你的應該這樣寫。保證只有一次修改,循環的時候只是為了判斷有沒有

var _tag = false;

_this.listWish.forEach(function(a) {

  _tag = false;

  _this.major.forEach(function(item) {

    if (item.major_id == a.id) {

      _tag  = item.wish_id

    }

  });

  if(_tag){

      _this.$set(a, 'activeName', true);

      _this.$set(a, 'wishId', _tag);

  } else {

      _this.$set(a, 'activeName', false);

  }

});

//里面可以優化的地方就是如果內循環重復了,跳出來,這樣可以少判斷一點。

//你的應該這樣寫。保證只有一次修改,循環的時候只是為了判斷有沒有

var _tag = false;

_this.listWish.forEach(function(a) {

  _tag = false;

  _this.major.forEach(function(item) {

    if (item.major_id == a.id) {

      _tag  = item.wish_id

    }

  });

  if(_tag){

      _this.$set(a, 'activeName', true);

      _this.$set(a, 'wishId', _tag);

  } else {

      _this.$set(a, 'activeName', false);

  }

});

//里面可以優化的地方就是如果內循環重復了,跳出來,這樣可以少判斷一點。


查看完整回答
反對 回復 2018-08-06
  • 2 回答
  • 0 關注
  • 2953 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號