function uniqueArray(arr) {
const result = []
for (const item of arr) {
let isFind = false
for (const exitItem of result) {
if (equals(item, exitItem)) {
isFind = true
break
}
}
if (!isFind) {
result.push(item)
}
}
return result
}
// 辅助函数,判断两个值是否相等
function equals(val1, val2) {
// 原始类型直接用Object.is判断
if (isPrimitive(val1) || isPrimitive(val2)) {
return Object.is(val1, val2)
}
const entires1 = Object.entries(val1)
const entires2 = Object.entries(val2)
if (entires1.length !== entires2.length) {
return false
}
for (const [key, value] of entires1) {
if (!equals(value, val2[key])) {
return false
}
}
return true
}
// 辅助函数,判断是否为原始类型
function isPrimitive(value) {
return value === null || (typeof value !== 'object') && (typeof value !== 'function')
}
js数组去重,对象属性相同也去除
最新推荐文章于 2024-11-12 11:19:19 发布
本文介绍了如何在JavaScript中编写一个名为uniqueArray的函数,用于从数组中去除重复元素,以及辅助函数equals用于判断两个值是否相等,特别关注了对原始类型和对象的处理。
摘要由CSDN通过智能技术生成