js數組完美去重,區分undefined,NaN,null,字符串等


function array_unique(arr) {
            let len = arr.length;
            if (!len) {
                return [];
            }
            let tmp = [];
            for (let i = 0; i < len; i++) {
                if (
                    tmp.findIndex((v) => { return JSON.stringify(v) === JSON.stringify(arr[i]) }) === -1
                ) {
                    tmp.push(arr[i])
                }
            }
            return tmp;
        }
        let arr = [1, 2, 3, 4, '1', 2, undefined, undefined, 'undefined', NaN, NaN, {}, {}, { a: 1 }, { a: 1 }]
        let newArr = array_unique(arr);
        console.log(newArr)
        // function array_unique(arr) {
        //     let len = arr.length
        //     if (!len) {
        //         return []
        //     }
        //     let tmp = []
        //     for (let i = 0; i < len; i++) {
        //         // 判斷數組arr的元素是否在數組tmp中
        //         if (tmp.findIndex((v) => JSON.stringify(v) === JSON.stringify(arr[i])) === -1) {
        //             tmp.push(arr[i])
        //         }
        //     }
        //     return tmp
        // }
        // let arr = [1, 2, 3, '1', 2, undefined, undefined, 'undefined', NaN, NaN, {}, {}, { a: 1 }, { a: 1 }]
        // let newArr = array_unique(arr)
        // console.log(newArr) // [1, 2, 3, '1', undefined, 'undefined', NaN, {}, {a: 1}]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM