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相等。
微信公众号:前端实习日记
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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
阅读 809·2019-08-30 15:53
阅读 554·2019-08-30 15:52
阅读 2145·2019-08-30 12:59
阅读 2268·2019-08-29 16:42
阅读 1384·2019-08-26 18:26
阅读 2466·2019-08-26 13:48