本文共 1952 字,大约阅读时间需要 6 分钟。
Below是优化后的内容:
같은值会被 Set自動去重,Array.from 可以将其轉換為陣列。
function unique(arr) { return Array.from(new Set(arr));}
注意事項:
先創建Pointer, 階驰遍歷,遇到重复值時刪除後面的元素。
function unique(arr) { for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j < arr.length; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1); j--; } } } return arr;}
注意事項:
於 Penny ,建立新陣列,時間 complexity O(n²),但直觀易懂。
function unique(arr) { if (!Array.isArray(arr)) { console.log('輸入錯誤'); return []; } const result = []; for (let i = 0; i < arr.length; i++) { if (result.indexOf(arr[i]) === -1) { result.push(arr[i]); } } return result;}
排序並移動重复元素。
function unique(arr) { if (!Array.isArray(arr)) { console.log('輸入錯誤'); return []; } const sorted = arr.slice().sort(); const result = [sorted[0]]; for (let i = 1; i < sorted.length; i++) { if (sorted[i] !== sorted[i - 1]) { result.push(sorted[i]); } } return result;}
直接檢查是否存在陣列已有元素, dahaเข็ง kop。
function unique(arr) { if (!Array.isArray(arr)) { console.log('輸入錯誤'); return []; } const result = []; for (let item of arr) { if (!result.includes(item)) { result.push(item); } } return result;}
使用 Map 儿童儲存$arrayElem, unmap():
function unique(arr) { const map = new Map(); const result = []; for (let item of arr) { if (!map.has(item)) { map.set(item, true); result.push(item); } } return result;}
直接 filter 排除重复元素。
function unique(arr) { return arr.filter((item, index, arr) => { return arr.indexOf(item) === index; });}
转载地址:http://uuitz.baihongyu.com/