前兩天遇到一個問題,不過后來解決啦,在這里跟大家分享一下,話不多說,上案例(基於vue + element)~~~
需求:點擊上方表格中的全選/選擇,選中數據會顯示在下方表格中;
問題:會有重復顯示數據
解決辦法:
點擊全選:會有重復數據所以我們要先去重,
es6中有個去重方法:
this.checkedDataList = Array.from(new Set(this.checkedDataList));
因為上方表格是有分頁功能的,所以這個方法可能不是很友好(具體場景:在第一頁點擊全選,再跳第二頁點擊全選,再回到第一頁,數據就重復了);
然后我又換了一種方法:
const newArr = [];
this.checkedDataList.map((item) => newArr.findIndex(({
id
}) => id === item.id) === -1 && newArr.push(item));
this.checkedDataList = newArr;
這個方法是我在網上找到的(如有侵犯請聯系),就完美的解決了我的問題,不管分頁如何跳轉,下方數據始終不會重復。
點擊選擇:也會有重復數據的
這個就比較簡單了,直接循環,看選中的數據中有沒有一模一樣的數據好啦,如果有的話就直接提示已經選擇此條數據啦!