1.ES6中新增了Set
数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
let set = new Set(array);
console.log(set);
// => Set {1, 2, 3, 4, 5}
2.ES6中Array
新增了一个静态方法Array.from
,可以把类似数组的对象转换为数组,如通过querySelectAll
方法得到HTML DOM Node List
,以及ES6中新增的Set
和Map
等可遍历对象,如:
let set = new Set();
set.add(1).add(2).add(3);
let array = Array.from(set);
console.log(array);
// => [1, 2, 3]
于是,现在我们可以用一行代码实现数组去重了:
let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
console.log(array);
实例:
let tableData=[{ "产品":"a", "销量":100, "盈利":100 }, { "产品":"b", "销量":100, "盈利":100 }, { "产品":"b", "销量":50, "盈利":80 }] let arr=[] tableData.forEach((item)=>{ arr.push(item['产品']) }) let set = Array.from(new Set(arr));//set为["a","b"]
应用:
//获取表头上筛选数组中的内容
this.filterArr_channel=[] let arr=[] this.tableDataAll.forEach((item)=>{ arr.push(item['放款通道']) }) let set = Array.from(new Set(arr)); set.forEach((item)=>{ this.filterArr_channel.push({text: item, value:item}) })