欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

javascript array去重

李明濤1年前7瀏覽0評論

JavaScript Array去重是日常開發中常遇到的問題。針對數組去重,我們可以使用循環比較、ES6 Set、ES6 Map等方式來實現。本文將介紹這些方法并給出示例代碼,希望能對讀者在實際開發中有所幫助。


一、使用循環遍歷方法去重

function unique(arr) {
var res = []
for (var i = 0, len = arr.length; i< len; i++) {
if (res.indexOf(arr[i]) === -1) {
res.push(arr[i])
}
}
return res
}

以上為常規的循環方法,該方法時間復雜度較高,在數據量較大時不太適用。


二、使用ES6 Set方法去重

function unique(arr) {
return Array.from(new Set(arr))
}

以上代碼中,Set 可以自動去重,然后利用 Array.from 將 Set 結構轉換成數組。同時,如果使用 ES6 的擴展運算符 ... 也可以實現數組去重:

function unique(arr) {
return [...new Set(arr)]
}

ES6 Set 去重的時間復雜度會好于循環方法。


三、使用ES6 Map方法去重

function unique(arr) {
let map = new Map()
let res = []
for (let i = 0; i< arr.length; i++) {
if (!map.has(arr[i])) {
map.set(arr[i], true)
res.push(arr[i])
}
}
return res
}

利用 ES6 Map 對比去重,該方法時間復雜度較低,是目前效率最高的去重方法之一。


四、數組去重總結

上述三種方法各有優缺點,具體使用要視情況而定。除此之外,還有很多其他的方法可以達到去重的效果,如利用 indexOf 或 includes,但其時間復雜度相對較高,因此不推薦使用。同時,需要注意一些特殊情況,如對于 NaN、undefined 等特殊數據類型,可以通過簡單的 if 判斷進行過濾處理。


五、總結

JavaScript Array去重是我們在日常開發中經常會遇到的問題。通過本文的介紹,我們了解了三種主流的去重方法,它們在時間復雜度、代碼實現難度和代碼優雅度上各有特點。多注意數組去重的特殊情況,能讓我們更好地解決問題。