Why this code output of both are different as adding objects in set make compare references? Code 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)
Code 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)
Code 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}
[[Prototype]] : []
Code 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}
[[Prototype]] : []
Set#add()
does not accept variable number of arguments. .set(...newList)
just adds the first item because the method has a single parameter.
const set = new Set();
set.add(1, 2, 3, 4, 5);
console.log(set.size);