• 在 JavaScript 中检查 2 个数组是否相等的简单方法


    第一次学习 JavaScript 时,我们都这样做了......

    1. const a = [1,2];
    2. const b = [1,2];
    3. if (a === b) console.log('Equal!');

    如果你试过这个,那么你知道每次都会返回 false。a === b

    为什么?

    因为数组变量是通过引用而不是按值分配的。

    Sois 只是一个指向内存中某处位置的指针。 虽然“b”是指向内存中不同位置的另一个指针,但它也恰好是存储。a[1,2][1,2]

    当您检查是否时,您实际上是在检查他们的成员位置,而不是他们指向的值。a === b

    那么什么给了呢?

    有没有简单的方法来检查由 and 表示的底层数组是否相等,而不必逐个元素进行比较?ab

    这是完成它的快速作弊...

    1. const d = [1,2,4,5,6];
    2. const c = [1,2,4,5,6];
    3. if (JSON.stringify(d) === JSON.stringify(c)) console.log('Equal!');

    为什么会这样?

    到底是什么?JSON.stringify(...)

    JSON.stringify(...)获取数组(或对象)并返回其字符串表示形式。

    是串的!

    例如:

    JSON.stringify([7,8,9])
    

    会回来的。由于该值是一个字符串,因此您可以将其与另一个数组的值进行比较,该数组也作为字符串返回。:)'[7,8,9]'JSON.stringify(...)

    这个技巧甚至适用于双数组(以及一般的多维数组)。您也可以通过这种方式比较对象,只要每个对象的属性顺序相同即可。

    另一个提示

    如果你想比较 2 个数组是否包含相同的值,无论顺序如何,那么只需使用方法首先对两个数组进行排序,然后使用进行比较!Array.sort()JSON.stringify

  • 相关阅读:
    微软成AI热潮大赢家,继续押注大模型和人工智能
    xml与动态SQL
    STL-List
    vue3子调父页面的方法
    uni app 钓鱼小游戏
    经典面试题 之 Elasticsearch
    java-net-php-python-springboot博客系统计算机毕业设计程序
    实现Quartz.NET的HTTP作业调度
    【通信】基于MVDR LCEC GSC PCI MWF EC PCA_MVB多种算法实现自适应波束生成
    《谷粒商城》总结篇
  • 原文地址:https://blog.csdn.net/liuhao9999/article/details/128183492