javascript检测两个数组是否相似


Posted in Javascript onMay 19, 2015

JS要比较两个数组是否有相同的元素,即两个数组所有元素都相同,但元素的顺序不一定一致。只就需要先将数组进行排序,再比较两个数组是否相等。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  <title>js 检测两个数组是否相似</title>
</head>
<body>
  <script>
    //数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。
     //数组的长度一致。
    //类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.
    function arraysSimilar(arr1, arr2){
      //判断边界
      if (!(arr1 instanceof Array) || !(arr2 instanceof Array)) {
        return false;
      }

      //判断长度
      if (arr1.length != arr2.length) return false;

      var i = 0, n = arr1.length, countMap1 = {}, countMap2 = {}, t1, t2, TYPES = ['string', 'boolean', 'number', 'undefined', null, 'function', 'date', 'window'];

      for ( ; i < n; i++) {
        t1 = typeOf(arr1[i]);
        t2 = typeOf(arr2[i]);
        if (countMap1[t1]) {
          countMap1[t1] ++;
        }else{
          countMap1[t1] = 1;
        }
        if (countMap2[t2]) {
          countMap2[t2] ++;
        }else{
          countMap2[t2] = 1;
        }
      }

      function typeOf(ele){
        var r;
        if (ele === null) r = 'null';
        else if(ele instanceof Array) r = 'array';
        else if(ele === window) r = 'window';
        else if(ele instanceof Date) r = 'date';
        else r = typeof ele;
        return r;

      }

      for (i = 0; i < TYPES.length; i++) {
        if (countMap1[TYPES[i]] != countMap2[TYPES[i]]) return false;
      }

      return true;
    }

    document.write(arraysSimilar([1,true], [false, 2]));
  </script>
</body>
</html>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
javascript Array对象基础知识小结
Nov 16 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
May 25 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
jQuery对table表格进行增删改查
Dec 22 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
Nov 08 jQuery
详解小程序开发经验:多页面数据同步
May 18 Javascript
Fetch超时设置与终止请求详解
May 18 Javascript
JS精确判断数据类型代码实例
Dec 18 Javascript
微信小程序使用自定义组件导航实现当前页面高亮
Jan 02 Javascript
10条建议帮助你创建更好的jQuery插件
May 18 #Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 #Javascript
JQuery中层次选择器用法实例详解
May 18 #Javascript
Jquery中基本选择器用法实例详解
May 18 #Javascript
Jquery注册事件实现方法
May 18 #Javascript
jquery中map函数遍历数组用法实例
May 18 #Javascript
jquery使用each方法遍历json格式数据实例
May 18 #Javascript
You might like
一个程序下载的管理程序(二)
2006/10/09 PHP
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
php curl优化下载微信头像的方法总结
2018/09/07 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
执行iframe中的javascript方法
2008/10/07 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
bootstrapValidator.min.js表单验证插件
2017/02/09 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
python简单判断序列是否为空的方法
2015/06/30 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
基于python实现高速视频传输程序
2019/05/05 Python
Python中私有属性的定义方式
2020/03/05 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
Python进行特征提取的示例代码
2020/10/15 Python
荷兰包包购物网站:The Little Green Bag
2018/03/17 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
四个太阳教学反思
2014/02/01 职场文书
生物制药专业求职信
2014/03/11 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
护士自荐信范文
2015/03/25 职场文书
幼师辞职信范文大全
2015/05/12 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript