xb18
xb18
文章78
标签0
分类0
数组相关

数组相关

求差集

1
2
3
4
5
// 例如求var arr1 = [1]; var arr2 = [1,2];的差集
Array.prototype.diff = function(a) {
return this.filter(function(i) {return a.indexOf(i) < 0;});
};
// [1,2].diff([1]);//[2]

forEach不执行

1
2
3
new Array(5).fill('').forEach((item, index) => {
});
// 少了fill后不会执行forEach

当使用 Array(5) 创建数组时,它是一个稀疏数组。这意味着所有元素都是 <empty>。当您使用map/forEach/for in时,这些函数仅迭代非空元素。

isEqual

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function isEqual(obj1, obj2) {
// 先判断这俩是不是对象或者数组类型的
if ((typeof (obj1) !== "object" && obj1 !== null) || (typeof (obj2) !== "object" && obj2 !== null)) {
return obj1 === obj2
}
// 如果特意传的就是两个指向同一地址的对象
if (obj1 === obj2) {
return true
}
// 如果key的个数都不一样那么肯定不能相等 return false
let obj1key = Object.keys(obj1)
let obj2key = Object.keys(obj2)
if (obj1key.length !== obj2key.length) {
return false
}

for (key in obj1) {
if (!isEqual(obj1[key], obj2[key])) {
return false
}
}

return true
}

本文作者:xb18
本文链接:https://moelj.com/2023/11/16/%E6%95%B0%E7%BB%84%E7%9B%B8%E5%85%B3/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可