Set是ES6種新增的數據結構,有點類似與數組,但它的成員的值都是唯一的
1.取兩個數組的交并差集
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.判斷兩個數組是否“相等”
有兩種方法
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]") { //考慮到數組中包含對象,調用判斷對象是否"相等"的方法,此方法不考慮數組中有對象的情況 //} 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
轉換成字符串后,導致字符串"1"和數字1相等。
微信公眾號:前端實習日記
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94674.html
摘要:無意中發現很多朋友都喜歡使用來判斷兩個數組是否相等,我自己也偶爾會這么使用但是今天我在寫代碼的過程中無意發現這么做是不準確的。 無意中發現很多朋友都喜歡使用array_diff(array1, array2)來判斷兩個數組是否相等, 我自己也偶爾會這么使用 但是今天我在寫代碼的過程中無意發現這么做是不準確的。 首先我們來看一下這個函數的釋義(PHP Manual): 對比 array1...
簡介 數組、差集、函數 根據給出的函數找出兩個數組中的差集。 const differenceBy = (a, b, fn) => { const s = new Set(b.map(fn)); return a.filter(el => !s.has(fn(el))); }; 代碼分析 這段代碼使用了ES2015中定義的 Set 對象。Set 對象的值的特點是不含有重復的值,這個特性可以...
摘要:數組判斷是否含有某個元素數組去重交集差集并集數組數組交集是差集是并集是臨時寫,有問題可以交流,對于其他的余集補集合集懶得區分了上面三種挺常用的,僅供參考。 Document //數組判斷是否含有某個元素 Array.prototype.contains = function (obj) { ...
摘要:上一篇數據結構與算法鏈表寫在前面說明數據結構與算法系列文章的代碼和示例均可在此找到一集合集合數據結構集合是一種包含不同元素的數據結構。集合中的元素成為成員。 上一篇:JS數據結構與算法_鏈表 寫在前面 說明:JS數據結構與算法 系列文章的代碼和示例均可在此找到 一、集合Set 1.1 集合數據結構 集合set是一種包含不同元素的數據結構。集合中的元素成為成員。集合的兩個最重要特性是:...
閱讀 2265·2021-09-27 13:35
閱讀 561·2019-08-30 15:55
閱讀 810·2019-08-30 15:53
閱讀 555·2019-08-30 15:52
閱讀 2146·2019-08-30 12:59
閱讀 2269·2019-08-29 16:42
閱讀 1385·2019-08-26 18:26
閱讀 2467·2019-08-26 13:48