var list = [];
function addUnique(item) {
var exists = false;
for (var i = 0; i < list.length; i++) {
if (list[i] === item) { // 對象需自定義比較邏輯
exists = true;
break;
}
}
if (!exists) list.push(item);
}
Set 或 Map。
// 簡單類型
var unique = [...new Set(list)];
// 對象去重(按 id 字段)
var uniqueObjs = Array.from(new Map(list.map(o => [o.id, o])).values());
// 兼容舊環境
function uniqueArray(arr) {
var seen = {};
return arr.filter(function(item) {
var key = JSON.stringify(item); // 簡單序列化作 key
return seen.hasOwnProperty(key) ? false : (seen[key] = true);
});
}
項目中引入 lodash.uniq 或 lodash.uniqBy,功能全面且性能優化。