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 相关文章推荐
js数组Array sort方法使用深入分析
Feb 21 Javascript
JQuery中form验证出错信息的查看方法
Oct 08 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
Aug 15 Javascript
JS实现超简单的仿QQ折叠菜单效果
Sep 21 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
jQuery中队列queue()函数的实例教程
May 03 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
Jan 04 Javascript
Vue的Class与Style绑定的方法
Sep 01 Javascript
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 Javascript
Vue实现图书管理案例
Jan 20 Vue.js
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 include和require的区别深入解析
2013/06/17 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
onmouseover和onmouseout的一些问题思考
2013/08/14 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
2014/01/31 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
jQuery简单实现提交数据出现loading进度条的方法
2016/03/29 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
js设置鼠标悬停改变背景色实现详解
2019/06/26 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
python pip源配置,pip配置文件存放位置的方法
2019/07/12 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
Python数组拼接np.concatenate实现过程
2020/04/18 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
初二政治教学反思
2014/01/12 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
开业庆典策划方案
2014/02/18 职场文书
给校长的一封建议书
2014/03/12 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
python文件目录操作之os模块
2021/05/08 Python