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}]