为什么两者的代码输出不同,因为在集合中添加对象进行比较引用? 代码1
let list = [ {a:1,b:1},{a:2,b:3},{a:3,b:1} ]
let set = new Set(list);
let newList = [{a:1,b:2},{a:3,b:1}];
set.add(...newList)
let newFilteredList = [...set]
console.log(newFilteredList)
代码2
let list = [ {a:1,b:1},{a:2,b:3},{a:3,b:1} ]
let newList = [{a:1,b:2},{a:3,b:1}];
let employees = [...list, ...newList]
let set = new Set(employees)
let newFilteredList = [...set]
console.log(newFilteredList)
代码:1
(4) [{...}, {...}, {...}, {...}] 0 : (2) {a: 1, b: 1} 1 : (2) {a : 2, b: 3} 2 : (2) {a: 3, b: 1} 3 : (2) {a: 1, b: 2} [[原型]] : []
代码2:
(5) [{...}, {...}, {...}, {...}, {...}] 0 : (2) {a: 1, b: 1} 1 :(2) {a: 2, b: 3} 2 : (2) {a: 3, b: 1} 3 : (2) {a: 1, b: 2} 4 : (2) {a: 3, b: 1} [[原型]] : []
Set#add()
不接受可变数量的参数。 .set(...newList)
仅添加第一项,因为该方法只有一个参数。
const set = new Set();
set.add(1, 2, 3, 4, 5);
console.log(set.size);