vue 数值对象和对象 indexOf()问题

现在的函数

const index1 = JSON.stringify(this.selectGame).indexOf(JSON.stringify(item1));
???下面要怎么写,如果点击时对象数组this.selectGame中包含有对象item1,就删除当前点击的对象

之前的函数

    //点击选择收藏的内容
    check_show(item1) {
      const index1 = this.selectGame.indexOf(item1);
      // let aa = { idName:item.Id,nameId:item.Name}
      if(index1 > -1 ){
        this.selectGame.splice(index1, 1)
      }else if(this.selectGame.length < 10){
        this.selectGame.push(item1);
      }
    },

上面的函数在 this.selectGame.push(item1);执行中添加进的元素有效,如果是selectGame中途就已经包含有元素,就不能起作用于是我用JSON.stringify将item1都转成了字符串,但是问题是indexOf出来的结果是字符串的长度,像是317,175,818,2500之类的,就不能用this.selectGame.splice(index1, 1)将包含有的函数按照位置删除

阅读 5.8k
2 个回答

...昨天那个问题下面有回复你啊

clipboard.png

item是对象,你可能用findIndex更好,JSON.strify几乎不会用在这种场景。
如果item有相互区别的属性,比如id,那查看这个item是否在列表中的索引就可以用 let index = this.selectGame.findIndex(item => item.id === item1.id),即查找列表中id和item1的id相同的项的下标,不存在则为-1.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题