摘要:方法新特性方法利用對象名唯一方法利用數組包含方法排序比較兄弟元素方法雙循環比較
方法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 }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/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高性能數組...
閱讀 1855·2021-11-25 09:43
閱讀 1497·2021-09-02 15:21
閱讀 3461·2019-08-30 15:52
閱讀 1507·2019-08-30 12:48
閱讀 1304·2019-08-30 10:57
閱讀 2934·2019-08-26 17:41
閱讀 684·2019-08-26 11:59
閱讀 1374·2019-08-26 10:41