Set是ES6種新增的數(shù)據(jù)結(jié)構(gòu),有點(diǎn)類似與數(shù)組,但它的成員的值都是唯一的
1.取兩個數(shù)組的交并差集
var a = [1,2,3,4]; var b = [3,4,5,6]; var set1 = new Set([...a,...b]); var set2 = new Set(a.filter((item)=>{ return b.indexOf(item) > -1 })); var set3 = new Set(a.filter((item)=>{ return b.indexOf(item) == -1 })) console.log("并集:",set1);//Set{1,2,3,4,5,6} console.log("交集:",set2);//Set{3,4} console.log("差集:",set3);//Set{1,2}
2.判斷兩個數(shù)組是否“相等”
有兩種方法
1 JSON.stringify()
var a = ["1",2]; var b = [1,2]; console.log(JSON.stringify(a));//["1",2] console.log(JSON.stringify(b));//[1,2] console.log(JSON.stringify(a) == JSON.stringify(b));//false
2 不允使用JSON.stringify時
Array.prototype.equals = function (arr) { if (!arr) return false; if (this.length != arr.length) return false; for (var i = 0, l = this.length; i < l; i++) { if (Array.isArray(this[i]) && Array.isArray(arr[i])) { this[i].equals(arr[i]); } //else if(Object.prototype.toString.call(this[i])==="[object Object]" && Object.prototype.toString.call(arr[i])==="[object Object]") { //考慮到數(shù)組中包含對象,調(diào)用判斷對象是否"相等"的方法,此方法不考慮數(shù)組中有對象的情況 //} else { // console.log(this[i]); // console.log(arr[i]); if(this[i]!=arr[i]){ return false; } } } return true; }
注意 不要用 X.toString();
var a = ["1",2]; var b = [1,2]; console.log(a.toString());//1,2 console.log(b.toString());//1,2 console.log(a.toString() == b.toString());//true
轉(zhuǎn)換成字符串后,導(dǎo)致字符串"1"和數(shù)字1相等。
微信公眾號:前端實(shí)習(xí)日記
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/94674.html
摘要:無意中發(fā)現(xiàn)很多朋友都喜歡使用來判斷兩個數(shù)組是否相等,我自己也偶爾會這么使用但是今天我在寫代碼的過程中無意發(fā)現(xiàn)這么做是不準(zhǔn)確的。 無意中發(fā)現(xiàn)很多朋友都喜歡使用array_diff(array1, array2)來判斷兩個數(shù)組是否相等, 我自己也偶爾會這么使用 但是今天我在寫代碼的過程中無意發(fā)現(xiàn)這么做是不準(zhǔn)確的。 首先我們來看一下這個函數(shù)的釋義(PHP Manual): 對比 array1...
簡介 數(shù)組、差集、函數(shù) 根據(jù)給出的函數(shù)找出兩個數(shù)組中的差集。 const differenceBy = (a, b, fn) => { const s = new Set(b.map(fn)); return a.filter(el => !s.has(fn(el))); }; 代碼分析 這段代碼使用了ES2015中定義的 Set 對象。Set 對象的值的特點(diǎn)是不含有重復(fù)的值,這個特性可以...
摘要:數(shù)組判斷是否含有某個元素數(shù)組去重交集差集并集數(shù)組數(shù)組交集是差集是并集是臨時寫,有問題可以交流,對于其他的余集補(bǔ)集合集懶得區(qū)分了上面三種挺常用的,僅供參考。 Document //數(shù)組判斷是否含有某個元素 Array.prototype.contains = function (obj) { ...
摘要:上一篇數(shù)據(jù)結(jié)構(gòu)與算法鏈表寫在前面說明數(shù)據(jù)結(jié)構(gòu)與算法系列文章的代碼和示例均可在此找到一集合集合數(shù)據(jù)結(jié)構(gòu)集合是一種包含不同元素的數(shù)據(jù)結(jié)構(gòu)。集合中的元素成為成員。 上一篇:JS數(shù)據(jù)結(jié)構(gòu)與算法_鏈表 寫在前面 說明:JS數(shù)據(jù)結(jié)構(gòu)與算法 系列文章的代碼和示例均可在此找到 一、集合Set 1.1 集合數(shù)據(jù)結(jié)構(gòu) 集合set是一種包含不同元素的數(shù)據(jù)結(jié)構(gòu)。集合中的元素成為成員。集合的兩個最重要特性是:...
閱讀 2282·2021-09-27 13:35
閱讀 569·2019-08-30 15:55
閱讀 820·2019-08-30 15:53
閱讀 567·2019-08-30 15:52
閱讀 2155·2019-08-30 12:59
閱讀 2280·2019-08-29 16:42
閱讀 1443·2019-08-26 18:26
閱讀 2478·2019-08-26 13:48