相等数组判断:数组顺序及元素相同,数组元素相同但顺序不同
判断两个数组是否相等
1.两个数组顺序及元素完全相同
2.两个数组里面的元素完全相同,但是顺序不同
1.两个数组顺序及元素完全相同
(这边只考虑简单类型的数组类型)
1.可以转换成字符串进行比较(undefined
与null
都会 被转为空字符串)
const arr1.join() === arr2.join()
2.通过JSON.stringify()进行转换比较(undefined
和NaN
都会被转为null
)
JSON.stringify(arr1) === JSON.stringify(arr2);
缺点:无法比较对比数组中含有undefined,null的情况
3.通过Object.is()进行比较
通过object.is()对于每项元素进行比较
const isArrEqual = (arr1, arr2) => { return arr1.length === arr2.length && arr1.every((ele, index) => Object.is(ele, arr2[index])); };
2.两个数组元素相同但顺序不同
在某些情况下,认定元素相同但顺序不同的数组为相同数组
(但是有重复数据的情况会有问题,eg:[1,0,0,-1]和[1,0,-1, -1]会判断成相等)
const isArrEqual = (arr1, arr2) => { return arr1.length === arr2.length && arr1.every((ele) => arr2.includes(ele)); };
把数组元素排序后,去除重复元素
function getSetArr(resultArr){
const sortedArr = resultArr.map(item => item.sort()) const empty = [] const resultarrNoRepeat = [] sortedArr.forEach(item => { if (!empty.includes(item.join())) { empty.push(item.join()) resultarrNoRepeat.push(item) } })
return resultarrNoRepeat
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构