摘要:方法新特性方法利用对象名唯一方法利用数组包含方法排序比较兄弟元素方法双循环比较
方法1:ES6新特性Set
Array.prototype.rmSome = function() { return Array.from(new Set(this)); }
方法2:利用对象名唯一
Array.prototype.rmSome = function() { let tempObj = {} this.forEach(item => { if (tempObj[item]) { return } else { tempObj[item] = item; } }) return Object.values(tempObj) }
方法3:利用数组包含 [].includes [].indexOf
Array.prototype.rmSome = function () { let tempArr = []; this.forEach((item, index) => { if (tempArr.includes(item)) { return } else { tempArr.push(item) } }) return tempArr }
方法4: 排序比较兄弟元素
Array.prototype.rmSome = function () { const tempArr = this.sort(); tempArr.forEach((item, index) => { for (let i = 0; i < tempArr.length; i++) { if (tempArr[i] == tempArr[i + 1]) { tempArr.splice(i, 1); i--; } } }) return tempArr }
方法5: 双循环比较
Array.prototype.rmSome = function () { for (let i = 0; i < this.length; i++) { const node = this[i]; for (let j = i + 1; j < this.length; j++) { if (node === this[j]) { this.splice(j, 1); j--; } } } return this }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/107980.html
摘要:三种方法利用判断新数组中实际上也是使用的类似的传入数组如果当前数组的第已经保存进了临时数组,那么跳过,否则把当前项到临时数组里面利用判断旧数组结果数组如果当前数组的第项在当前数组中第一次出现的位置不是,那么表示第项是重复的,忽略掉。 三种方法 利用indexOf判断新数组 underscore.js中实际上也是使用的类似的indexOf //传入数组 functio...
摘要:数组去重是校招面试的必考知识点。以下就是笔者所实现的数组去重的几种简单的方式。结合实现这种方法的关键点就是判断是否相同的时候不要忽略对元素类型的判断。以上就是笔者所想到的几个数组去重的方式大家如果有更好的方法欢迎留言。 数组去重,是校招面试的必考知识点。简单的说,数组去重就是将一个数组中的相同的元素删除,只保留其中的一个。这里的相同其实是一个陷阱,有好多同学只认为值相等即为相同,而忽略...
摘要:去重的几种方案双层循环排序后比较相邻元素是否相等压入数组有限制,但效率高高性能数组去重 JS去重的几种方案 new Set() 双层for循环 + splice Array.fliter + indexof Arroy.sort + 排序后比较相邻元素是否相等压入数组 for ... of + includes for ... of + object 有限制,但效率高 JS高性能数组...
阅读 1847·2021-11-25 09:43
阅读 1489·2021-09-02 15:21
阅读 3451·2019-08-30 15:52
阅读 1500·2019-08-30 12:48
阅读 1293·2019-08-30 10:57
阅读 2927·2019-08-26 17:41
阅读 680·2019-08-26 11:59
阅读 1365·2019-08-26 10:41