范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

JS判断两个数组是否相等,元素以及顺序相等,顺序不同但元素相等

  判断两个数组是否相等一般有两种场景。
  第一种是数组完全相等,即数组元素相同且元素顺序一致;
  第二则为元素相同但顺序不同。 数组完全相等
  如果数组元素只是字符串,数字,布尔值这些类型,可以考虑使用JSON.stringify或者join("")的做法,目的就是转为字符串,直接判断字符串是否相等,比如: // 基于join解决基本判断 const isArrEqual = (arr1, arr2) => {     return arr1.join("") === arr2.join(""); }; isArrEqual([1, 2, 3], [1, 2, 3]);// true isArrEqual([1, "", "b", false], [1, "", "b", false]);// true isArrEqual([1], [1, 2]);// false  // 基于JSON.stringify解决基本判断 const isArrEqual = (arr1, arr2) => {     return JSON.stringify(arr1) === JSON.stringify(arr2); }; isArrEqual([1, 2, 3], [1, 2, 3]);// true isArrEqual([1, "", "b", false], [1, "", "b", false]);// true isArrEqual([1], [1, 2]);// false
  但上述两种做法,都无法对比数组中包含undefined,null的情况,比如如下对比就暴露了问题: [undefined, 1, null, false].join("") === ["", 1, null, false].join("");// true
  这是因为对于join而言,undefined与null都会 被转为空字符串,所以上述代码左右两边得到的都是"1flase",因此相等。
  而对于JSON.stringify而言同样会存在这样的问题,比如如下例子: JSON.stringify([undefined, 1, NaN]) === JSON.stringify([null, 1, null]);// true
  这是因为对于JSON.stringify而言,undefined和NaN都会被转为null,这才导致上述代码相等。
  因此考虑基本数据类型以及NaN,其实可以这么实现它: const isArrEqual = (arr1, arr2) => {     return arr1.length === arr2.length && arr1.every((ele, index) => Object.is(ele, arr2[index])); }; isArrEqual([1, "b", false, undefined, null, NaN], [1, "b", false, undefined, null, NaN]);// true
  这里利用了 Object.is 方法,它接受两个参数,用于核对这两个参数是否相等,即便是NaN它也能有效判断。
  在导入excel表格场景中,也可以使用此方法来校验表头,判断是否使用正确的导入模版。 元素相同顺序不同
  有这样一种场景,我们认定两个元素相同但顺序不同的数组为相同数组,比如数组[A,B]与[B,A]是相同数组。
  比如一个功能设置模块,默认就勾选了[A,B]两个选项,下方会有一个更新按钮,只有用户修改了设置才会将更新按钮变为可点击状态,毕竟设置没改,就没更新的必要。
  考虑到实际场景中对于值的唯一性维护,因此数组中理论上不会存在相同的值,因此我们可以这么实现: const isArrEqual = (arr1, arr2) => {     return arr1.length === arr2.length && arr1.every((ele) => arr2.includes(ele)); }; isArrEqual([1, "b", false, undefined, null, NaN], [1, null, "b", undefined, false, NaN]);// true
  注意,上述实现是考虑到特殊场景不会让数组有重复项,因此可以这么实现,但如果数组有重复元素上述实现就不可行,比如这个例子就不OK: isArrEqual([1, 1], [1, null]);// true
  针对这种情况还是得考虑将两个数组进行排序,再按数组完全相等的思路对每一位进行对比。 const isArrEqual = (arr1, arr2) => {     return arr1.length === arr2.length && arr1.sort().every((ele, index) => Object.is(ele, arr2.sort()[index])); }; isArrEqual([1, 1], [1, null]);// false isArrEqual([null, 1], [1, null]);// true

日职联集锦横滨水手VS广岛三箭GBSPORTS推荐横滨水手最近10场比赛6胜2平2负,打进20球失10球。目前,球队在与日本职业队的2轮比赛中取得2胜0平0负的成绩,积6分在本届赛事中排名第一。横滨水手队在上赛c罗在老婆怀孕期间出轨!!!上月底,一名来自智利的模特儿DaniellaChavez爆料自己有和足球巨星CristianoRonaldo(以下称C罗)的私密影片后,如今又有一名网红Georgilaya也站出来7人上双首钢11983大胜山东北京时间3月3日,CBA常规赛第30轮山东高速主场迎战北京首钢,最终首钢11983大胜山东。首节,上来首钢多人连续攻框得分打出157的开局,山东陈培东连续两记三分止血,随后双方进行上海海港新主帅佩雷拉期待球迷见证我们去赢下比赛新华社上海3月3日电(记者许东远)3日,上海海港足球俱乐部为新任西班牙籍主帅哈维尔佩雷拉举办了欢迎仪式。佩雷拉表示我已经迫不及待地希望看到球迷们的入场,在他们的注视下去赢得比赛。出来这的游客大呼别太离谱搞得我妈很尴尬昆明!你别太离谱!近日一名外省游客和妈妈来昆明旅游买了一盆兰花当他们到了长水机场时看到了令人啼笑皆非的一幕游客的妈妈刚买的兰花居然和机场门口的绿化植物撞花了网友大呼你们昆明怎么绿化还在纠结iPhone14买不买?安卓也有好选择,天玑9000性价比拉满安卓粉的我,有时候也会眼馋苹果的打折,当初坚持没冲iPhone14首发,这个月打完折iPhone14Pro256GB居然都不用8K了,新的灵动岛新的A16和4800W大底主摄,杜比广东人看了直摇头的3类差劲酒,喝完就上头,酒友全是假酒中国23个省,5个自治区,4个直辖市,2个特别行政区,但要说哪里人最爱养生,还得是广东人!很多人对广东人的第一印象就是不仅爱吃还会吃,但凡是能入口的,他们都能做成美食,也不管是天上人的寿命太长是好事吗?人的寿命过长有利也有弊。首先,长寿可以让人们享受更长久的健康和快乐的生活。长寿可以带来更多的时间去追求个人兴趣爱好,参与社交活动和与家人和朋友共度美好时光。长寿也可以带来更多的时间为什么有的女生身上汗毛比较多?在炎热的夏季,对于很多女生而言,都会迫不及待穿上自己的短裙或者短裤来展现自己的身材。不过这个季节也会给有些女性带来十分的尴尬情况,那就是因为自己的汗毛过于旺盛。由于有些女生因为身上闺蜜大片这样拍!圣诞风氛围感满满!和小姐妹相聚在一起,除了吃吃喝喝聊八卦,最少不了拍合照!今天就来教大家如何拍出超好看的闺蜜照,一起Go闺蜜拍照不一定要穿得一模一样,但是在单品风格和元素上一定要相呼应,这样拍出来的刘晓庆的不服老,揭露了内娱女明星,痴迷整容的悲哀说到娱乐圈明星最害怕的东西,那么一定就是衰老。有些人年龄刚过30多岁就开始做一些医美项目,比如在脸上填充玻尿酸或者打肉毒素。尤其是明星,他们生活在镜头之下,一些缺点会被无限的放大,
登临亚洲最美360观景平台系列电影吴瑕带你看四川揽胜牛背山穿过茫茫云海,笑看云舒云卷,2019年中宣部文化名家暨四个一批人才宣传思想文化青年英才资助项目吴瑕带你看四川再启蜀风唱游之旅。在雅安市荥经县委宣传部和牛背山景区管理公司的大力支持下业余观天之感悟对于一个自定义的业余跨界认知研究者来说,我深知天文的研究具有长期性复杂性和专业性。因此,坚持个体兴趣有所收获,不必尽善尽美是我的理想。我从2021年11月12日开始进行简单的天文观迄今跳最高的机器人来了!超过自身高度100倍数十年来,工程师设计跳跃机器常模仿生物体或受其启发。日前,一项工程学研究报告了一个能够跳跃30米高的机器人,跳跃高度超过自身高度的100倍,也超越了迄今报告的其他跳跃机器人和最厉害里程碑!阿联酋希望号探测器在火星上发现神秘新极光阿联酋的希望号探测器在火星上发现了一种新型极光,这是一个里程碑式的发现。科学家将其称为弯曲的离散极光,它是一种巨大的蠕虫状极光,环绕地球的一半。当太阳活动扰乱行星大气层时,五颜六色vivoX80Pro和iPhone13Pro,哪个更值得入手?还用说,有钱的话选iPhone13Pro它不香吗?就说在6000元以上价位段,iPhone的销量占了市场份额的80,消费者用真金白银投票出来的结果不用质疑的。虽然在一些配置iPho网易云把腾讯音乐告了网易云音乐又和腾讯音乐打起来了。今天上午,网易云音乐发了一则声明网易云音乐关于起诉腾讯音乐不正当竞争的声明。消息一出,立刻登上热搜。本是一个严肃事件,但看完评论我笑疯了。你们不要再最佳时机,就在明天海报制作冯娟4月29日,神秘的水星将打开观赏窗口。天文科普专家介绍,这是今年水星的第三次大距,也是第二次东大距,更是今年观测水星的最佳时机。届时如果天气晴好,我国感兴趣的公众可在当2022年4月份新机选购指南,2K档到3K档这几款可以考虑前言最近一直有网友在咨询4月份有啥新机可以选购,本期就为大家盘点一波预算在20003000价位内值得入手的新机,涵盖目前市面上的主流品牌,总有一款适合你!小米系,红米K50依然是最谁是更强悍的天生战士?征服原神的红魔变形金刚定制版正式开售是捍卫与守护,还是征服与制霸?4月28日,游戏手机行业最强游戏战舰红魔7霸天虎定制版和红魔7Pro擎天柱定制版正式开售。作为正反两派的能力代表者,霸天虎和擎天柱虽然拥有两种不同的性全能随身手电筒天花板,纳拓十二合一手电筒测评作为一个专业的户外品牌,纳拓一直致力于各种专业户外产品的研发,例如各种户外工具手电以及应急宝等户外产品,笔者曾经就测评体验过纳拓的户外强光手电和六合一应急宝等产品。近日,纳拓又推出5岁女童这种病久治不愈,竟是异物惹的祸有本绘本叫我们身体里的洞,有助于家长带孩子了解身体的奥妙。因为在临床上,医生碰到太多因为好奇身体洞洞而发生的儿童病例。近日,一名5岁小女孩因下体出现血性分泌物2个多月,家长带她到清