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);
}
});
//里面可以优化的地方就是如果内循环重复了,跳出来,这样可以少判断一点。
添加回答
举报