Vue + Element table的@select方法获取当table中的id值都相同时,获取他们索引

先说下问题情况,原本通过双重forEach方法方法,遍历可以获取到被勾选中的索引。

let arr = []
val.forEach((val, index) => {   this.TableData.forEach((v,i) => {     if(val.id === v.id ) {       arr.push(i);     }   }); });

不过因为需求原因 我的表中的 id 都是相同的,用以上方法,最后打印出被选中的索引集合会有重复情况。因此就需要改变思路拿到他们的索引index了,不过最后没有找出非常优秀的解决方法。

此时呢,就只能使用以下方法来解决这个问题了。

let arr = [];
val.forEach((val, index) => {
  // ...(需要优化,当id有相同的时候,索引会出现id相同的所有索引。)
  // ...(通过val属性下的__ob__.dep.id的不同来解决索引会重复的问题。)
  this.rightTableData.forEach((v,i) => {
    if(val.__ob__.dep.id === v.__ob__.dep.id ) {
          arr.push(i);
        }
     });
 });

特此在此记录一下!!!

原文地址:https://www.cnblogs.com/xintao/p/13096211.html