当前位置: 首页 > news >正文

在小说网站做编辑怎么找站长之家综合查询工具

在小说网站做编辑怎么找,站长之家综合查询工具,微信开发公司是哪个,济南协会网站设计团队本文目录 1、通过数组自带方法比较2、通过循环判断3、toString()4、join()5、JSON.stringify() 日常开发,时不时会遇到需要判定2个数组是否相等的情况,需要实现考虑的场景有: 先判断长度,长度不等必然不等元素位置其他情况考虑 1…

本文目录

  • 1、通过数组自带方法比较
  • 2、通过循环判断
  • 3、`toString()`
  • 4、`join()`
  • 5、`JSON.stringify()`


日常开发,时不时会遇到需要判定2个数组是否相等的情况,需要实现考虑的场景有:

  • 先判断长度,长度不等必然不等
  • 元素位置
  • 其他情况考虑
    • '1'1 (Object的key是字符串, Map的key没有限制)
    • NaN
    • nullundefined

1、通过数组自带方法比较

// 方式1
function isArrEqual1(arr1, arr2) {if (arr1.length !== arr2.length) {return false;}return arr1.every((v, i) => v === arr2[i]);// return !arr1.some((v, i) => v !== arr2[i]);// return arr1.filter((v, i) => v !== arr2[i]).length === 0;// return arr1.findIndex((v, i) => v !== arr2[i]) === -1;
}// 测试
const arr1 = [-2, "-1", 0, 0.1, 1, "2", "a", "", undefined, null],arr2 = [-2, "-1", 0, 0.1, 1, "2", "a", "", undefined, null];isArrEqual1(arr1, arr2); // true

数组自带的方法,比较适合的有:every、some、filter、findIndex

这种方式严格限制了数组元素长度、类型、位置必须一致。

注意包含NaN也无法比较!NaN是JS中唯一一个与自身不相等的存在!判断NaN是否属于同一个值得用Object.is(),如:Object.is(NaN, NaN); // true

2、通过循环判断

// 方式2
function isArrEqual2(arr1, arr2) {if (arr1.length !== arr2.length) {return false;}for (let i = 0; i < arr1.length; i++) {if (arr1[i] !== arr2[i]) {return false;}}return true;
}

这种判定方法限制及说明同上述方法1。

3、toString()

// 方式3
function isArrEqual3(arr1, arr2) {if (arr1.length !== arr2.length) {return false;}return arr1.toString() === arr2.toString();
}// 测试
isArrEqual3(arr1, arr2); // trueconst arr3 = ['', 1, null, undefined, {}, { a: 1 }, NaN, [], [2, 3], new Date()],arr4 = ['', "1", undefined, null, {}, { a: 2 }, NaN, [], [2, "3"], new Date()];isArrEqual3(arr3, arr4); // true

toString 方法是Object类型对象的实例方法,作用是返回一个对象的字符串形式。

这种方式限制了数组长度和元素位置,但是会发现有些元素类型没有严格限制,这是由于js本身进行的数据隐式转换!

在控制台查看通过toString转化后的数组,得到的结果如下:
在这里插入图片描述

此外,对数组、空数组、对象、空对象等引用类型,由于toString转换结果都是[object Object],所以在比较的时候都会判定为相等!

还有,需要注意:

null == undefined // true
null === undefined // false

4、join()

// 方式4
function isArrEqual4(arr1, arr2) {if (arr1.length !== arr2.length) {return false;}return arr1.join() === arr2.join();
}

join 方法是数组的一个实例方法,如果join这个方法如果不传如分割符,其实作用几乎和toString一样,所以实现效果和限制同toString。
在这里插入图片描述

5、JSON.stringify()

// 方式5 [推荐]
function isArrEqual5(arr1, arr2) {if (arr1.length !== arr2.length) {return false;}return JSON.stringify(arr1) === JSON.stringify(arr2);
}// 测试
isArrEqual5(arr1, arr2); // true
isArrEqual5(arr3, arr4); // falseconst arr5 = [undefined, null, "", {}, { a: 1 }, NaN, [], [2, 3], new Date()],arr6 = [undefined, null, "", {}, { a: 1 }, NaN, [], [2, 3], new Date()];isArrEqual5(arr5, arr6); // true

JSON.stringify 用于将一个对象或值转换成JSON字符串,转换后结果会带双引号。
在这里插入图片描述

从测试结果可以看到,这个比较方式也严格的限制了数组长度、元素位置和元素类型,在日常中比较推荐此种方案~

http://www.shuangfujiaoyu.com/news/29764.html

相关文章:

  • 自备服务器做网站百度一下 官方网
  • php做网站怎么样百度seo推广是什么
  • 做网站标语制作网站平台
  • 推广普通话资料内容论述搜索引擎优化的具体措施
  • 邓州网站设计品牌营销策划公司哪家好
  • 佛山做pc端网站惠州网站建设方案推广
  • 做网站销售东西 需要什么资质百度推广代理加盟
  • ftp上传wordpress网站要多久app运营需要做哪些
  • 做网站一定要psd吗百度搜索风云榜小说总榜
  • 网站做整合页面seo网站排名优化教程
  • 建立网站坐等访问者发现怎样做网络推广营销
  • wordpress的主题说明博客seo优化技术
  • wordpress 医院模板下载淄博seo公司
  • 淄博专业网站设计中文域名交易平台
  • 做网站哪个语言好跨境电商平台有哪些?
  • 中小企业网站制作哪家好如何进行搜索引擎优化?
  • web开发就是做网站吗相亲网站排名前十名
  • 建设网站证书不受信任提交百度一下
  • 青岛中企动力做网站怎么样网络营销的四种形式
  • 优酷视频接到网站怎么做郑州网络公司
  • 专业做网站建设公司哪家好域名估价
  • 创建个人商城网站yahoo搜索引擎入口
  • 网站后台无法审核网站建设公司开发
  • 惠州市住房和城乡规划建设局官方网站百度北京总部电话
  • 网站黑色代码成都网站制作费用
  • 广东网站优化公司友情链接交换系统
  • 网页美工设计的四大原则seo搜索引擎实战详解
  • 网站空间上传软件公司怎么在百度上推广
  • 网站模板 百科如何做一个营销方案
  • 新手创业开什么店最好南京seo公司哪家