今天要介紹的是Set物件,它是ES6提供的構造函數。
特點:
- 儲存唯一值
- 可以儲存任何型別 (基本型別或物件皆可)
語法:
new Set([iterable]);
將一個可迭代的物件作為參數傳入,其中所有的元素都會放到新的Set當中。
如果參數為null或沒有指定參數,則新的Set會是空的。
方法:
實際應用:
這邊取兩個leetcode題目作為示範
136. Single Number
Given a non-empty array of integers nums, every element appears twice except for one. Find that single one.
Input: nums = [4,1,2,1,2] Output: 4
利用Set只保留唯一值的特性,我們可以先算出不重複的陣列值加總為何,將其乘以二後再扣除原本陣列的總和,就能知道哪個值沒有重複出現。
217. Contains Duplicate
Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.
Input: nums = [1,2,3,4] Output: false
Input: nums = [1,2,3,1] Output: true
利用Set, 我們可以先將nums中的唯一值存下來,並且和原本nums的長度做比較。如果有重複值,則原本nums的長度自然會大於new Set(nums)的長度
以上就是這次的Set分享,若文章有誤或是有任何心得歡迎留言告訴我!
參考資料