美文网首页
判断数组相等(完全相等)

判断数组相等(完全相等)

作者: 九千_ | 来源:发表于2019-04-09 11:11 被阅读0次

    简单的方法

    判断两个数组是否相同不能直接用==或者===来判断,结果都是false

    var a = ["type", 2, 3];

    var b = ["type", 2, 3];

    console.log(a===b)// false

    console.log(a==b) // false

    如果要判断两个数组是否相同(元素相同,顺序相同)只需要将两个数组转换为字符串然后再进行比较;

    如果要判断两个数组是否有相同的元素(元素相同,顺序可以不同)需要先将数组排序,然后转换为字符串进行比较

    var a = ["type", 2, 3];

    var b = ["type", 3, 2];

    var isSameArray = function (array1, array2) {

        array1 = array1.sort().join('');

        array2 = array2.sort().join('');

        return array1 === array2;

      };

    console.log(isSameArray(a, b))//true

    上面的方法的缺点是不针对能二维数组进行很好的比较,比如数组的成员是数组或者对象,也不能针对数组成员的类型进行判断,如果一个数组成员是数组5,另个一个是字符串5,判断结果只能是相等

    var a = ["type", [2,3], 3];

      var b = ["type", [3,2], 3];

      //比较数组是否相同的函数

      var isSameArray = function (array1, array2) {

        array1 = array1.sort().join('');

        array2 = array2.sort().join('');

        return array1 === array2;

      };

      console.log(isSameArray(a, b))//false

    可以考虑使用lodash的flatten 命令,将数组抹平,然后再进行比较

    _.flatten(array, [isDeep])

    1

    isDeep为空或者false的情况下,只抹平第一层嵌套。为true的情况下,递归的进行抹平。

    ---------------------

    原文出处

    ------------------------

    或者:

    相关文章

      网友评论

          本文标题:判断数组相等(完全相等)

          本文链接:https://www.haomeiwen.com/subject/eqtbiqtx.html