在遍历json数据出现重复的?

我拿到后台数据的时候,一开始觉得用for in遍历比较好,但是用之后就后悔了,

clipboard.png
我点击黄金会员的绑定角色,弹窗显示

clipboard.png
这样是正确的,但是当我点击普通会员的时候就还是上一次操作的会员角色

clipboard.png
打印console.log还是上一次操作的数据,本来请求普通会员是当前scope.row的数据,应该是没有数据的,却显示上一次的数据

          for (let i in this.bind) {
            console.log(this.bind[i].name);
            this.rolename = this.bind[i].name;
            if (this.bind == [] && "") {
              this.rolename = "请绑定角色";
            } else {
              return this.rolename;
            }
          }
          console.log(this.rolename);

这是我遍历数据的方法

clipboard.png
这是请求普通会员后台返回给我的,我要显示的请绑定会员,

clipboard.png
这是请求黄金会员后台返回给我的,显示的黄金会员角色,这个就正常了,白银会员也是正常的,就普通会员不行,那位置就一直显示前面两个会员的值,我判断当data为空时,就返回空值,但是没成功!帮帮看一下!

阅读 3.1k
2 个回答
if (!this.bind) {
    return '请绑定角色'
} else {
    // 其实这里我有点迷糊,按你的描述,这里直接返回 this.bind[0].name 也可以?
    // 如果 this.bind 里存在多个元素,最终 rolename 取值自哪里?
    for (let i in this.bind) {
        this.rolename = this.bind[i].name;
        return this.rolename;
    }
}

this.bind == [] && ""

如果this.bind是数组,这个等式拥有不会成立。this.bind 和[]的内存地址一定不一样,所以永远是false。而且还 && "", ""转成布尔值也是false 。

你应该判断数组的长度是否为0来,判断是否是空数组。

this.bind.length == 0
推荐问题