最近学了ES6,然后老师留了一道题:
//思考题?
let arr = [{
no: 1,
name: "jck",
age: 20
}, {
no: 2,
name: "lucy",
age: 21
}, {
no: 3,
name: "tom",
age: 22
}, {
no: 1,
name: "jck",
age: 20
}, {
no: 2,
name: "lucy",
age: 20
}, ]
关于数组中的对象去重,
解法思路:
let newArr = arr.map(item => JSON.stringify(item));
定义一个变量,使用ES6中map的方法,利用JSON.stringify()方法将数组中的对象转换为字符串
得到以下结果:
创建一个变量将转换好的字符串的数组使用ES6中的rest参数和Set方法去重:
...用于打散数据
let newarr = [...new Set(newArr)].map(item => JSON.parse(item));
将结果输出控制台就得到了去重之后的数据:
笔记:
Array.from() 将其它类型的数据(可遍历的结构和伪数组)转换为数组类型 ,例如:set、map
map:
map和对象结构非常相似 , 键值对
map是增强版的object类型(map的键支持所有的类型)
Set:
Set与数组非常相似
特点:Set中的每一个数据都是唯一的,不能重复
语法:
new Set();
扩展运算符(spread):取值
(...):打散数据
rest参数:逆运算
rest参数只能是最后一个参数
function show(a,b,c,...d){}