SOURCE

// 利用 Set 对象数组去重。代码量少,性能较高
function unique(arr) {
    // 创建一个 Set 数据结构,利用 Set 数据结构的特性去重
    const set = new Set(arr);
    // 将 Set 数据结构转换成数组,返回去重后的数组
    return Array.from(set);
};

function uniqueArray(arr) {
    // 判断传入参数是否为数组
    if (!Array.isArray(arr)) {
        throw new TypeError('The parameter must be an array');
    }

    // 创建一个新数组
    const newArr = [];

    // 遍历原数组
    for (let i = 0; i < arr.length; i++) {
        // // 判断当前元素是否为引用类型
        // if (arr[i] instanceof Object) {
        //     if (newArr.some(j => JSON.stringify(j) === JSON.stringify(arr[i]))) {
        //         continue;
        //     };
        //     newArr.push(arr[i]);
        //     continue;
        // };
        // 判断当前元素是否已经存在于新数组中
        if (!newArr.includes(arr[i])) {
            // 如果不存在,则添加到新数组中
            newArr.push(arr[i]);
        }
    }

    // 返回新数组
    return newArr;
}

console.log(uniqueArray([1, 2, 3, 4, 5, 5, 5, 5, 6, {}, {}]))
console 命令行工具 X clear

                    
>
console