相等数组判断:数组顺序及元素相同,数组元素相同但顺序不同

判断两个数组是否相等

1.两个数组顺序及元素完全相同

2.两个数组里面的元素完全相同,但是顺序不同

 

1.两个数组顺序及元素完全相同

(这边只考虑简单类型的数组类型)

    1.可以转换成字符串进行比较(undefinednull都会 被转为空字符串)

const arr1.join() === arr2.join()

   2.通过JSON.stringify()进行转换比较(undefinedNaN都会被转为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
}
复制代码

 

posted @   千亿昔  阅读(1165)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示