在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/數(shù)據(jù)分析&挖掘  C  HTML/ javascript 里面 set類(lèi)型 判斷交集和并集

javascript 里面 set類(lèi)型 判斷交集和并集

本人新手, 目前在學(xué)習(xí) Es6 里面的set數(shù)據(jù)類(lèi)型時(shí)遇到了一點(diǎn)疑惑, 如下:
在關(guān)于阮一峰的 Es6 里面提到, 可以使用set類(lèi)型進(jìn)行交集, 并集的判斷, 但是本人試了一下似乎并不成功, 想請(qǐng)教一下問(wèn)題出在哪里
代碼

var a = new Set([[0, 1], [0, 0], [0, 2]])
var b = new Set([[0, 0], [0, 1]])

var union = new Set([...a, ...b]);
var intersect = new Set([...b].filter(x => a.has(x)));
console.log(union, intersect);

對(duì)于第一個(gè)union返回結(jié)果仍舊有5個(gè), 是將所有的 a 與 b 的里面的元素都?xì)w到了一起, 但是個(gè)人認(rèn)為難道不應(yīng)該是結(jié)果只是 a 么, 因?yàn)?b 里面的一些元素和 a 里面的是完全一樣的

對(duì)于第二個(gè)intersect, 結(jié)果直接為一個(gè)空set, 但是如果是取交集的話不應(yīng)該是 b 么

另外假設(shè)我想要實(shí)現(xiàn)這樣的功能, 對(duì)于這個(gè)有點(diǎn)類(lèi)似多維數(shù)組的 set, 該如何寫(xiě)代碼拉力實(shí)現(xiàn)?

本人水平尚淺, 望指正

回答
編輯回答
賤人曾

set里,只有值和引用地址都完全相同,兩個(gè)元素才算是一樣的

2017年2月27日 02:07
編輯回答
怣痛

[0,0]!==[0,0] 分清楚基本類(lèi)型和符合類(lèi)型的相等比較
var a=[0,0]
var b=new Set([a]);
b.has(a)//true
b.has([0,0])//false

2018年5月6日 18:04
編輯回答
祉小皓

因?yàn)閇0, 0] === [0, 0]是false,這兩個(gè)數(shù)組雖然值看起來(lái)是一樣的,但是存儲(chǔ)地址是不同的,引用類(lèi)型的比較是比較變量指向的地址是否相同。
你要實(shí)現(xiàn)的功能,要么你自己寫(xiě)一個(gè)去重的方法,判斷兩個(gè)數(shù)組的對(duì)應(yīng)位置是否相同,要么用JSON.stingify處理之后再比較。

2017年7月27日 03:35