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

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);
}
});
//里面可以優化的地方就是如果內循環重復了,跳出來,這樣可以少判斷一點。
添加回答
舉報