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

简单的方法

判断两个数组是否相同不能直接用==或者===来判断,结果都是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的情况下,递归的进行抹平。

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

原文出处

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

或者:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.用js实现随机选取10~100之间的10个数字,存入一个数组,并排序 //要是获取不重复的,则对随机数...
    persistlu阅读 5,650评论 0 0
  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,232评论 0 6
  • # 数组部分 # 1.## array_chunk($arr, $size [, $preserve_key = ...
    clothTiger阅读 1,229评论 0 1
  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,060评论 0 2
  • 一、数组定义 array() 1、索引数组 在一个变量中,存储一个或多个值。数组中的每一个元素都有一个访问ID,根...
    竹与豆阅读 548评论 0 0