
数组相关
求差集
1 2 3 4 5
| Array.prototype.diff = function(a) { return this.filter(function(i) {return a.indexOf(i) < 0;}); };
|
forEach不执行
1 2 3
| new Array(5).fill('').forEach((item, index) => { });
|
当使用 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 } 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 }
|