Javascript 设置对象添加

问题描述 投票:0回答:1

为什么两者的代码输出不同,因为在集合中添加对象进行比较引用? 代码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} [[原型]] : []

javascript object reference set addition
1个回答
0
投票

Set#add()
不接受可变数量的参数。
.set(...newList)
仅添加第一项,因为该方法只有一个参数。

const set = new Set();

set.add(1, 2, 3, 4, 5);

console.log(set.size);

© www.soinside.com 2019 - 2024. All rights reserved.