javascript----类型测试示例
来源:互联网 发布:iphone软件 编辑:程序博客网 时间:2024/05/03 01:53
判断两个数组是否相同
1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。
数组的长度一致。
类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.
<!DOCTYPE HTML><html><head> <meta http-equiv="Content-Type" content="text/html; charset=gb18030"> <title>Untitled Document</title></head><body> <script type="text/javascript"> /* * param1 Array * param2 Array * return true or false */ if(!(arr1 instanceof Array) || !(arr2 instanceof Array) return false; if(arr1.length != arr2.length) return false; function arraysSimilar(arr1, arr2){ function typeOf(ele){ var r; if(ele === null) return "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; } var i, map1 = {}, map2 = {}, t1,t2, n = arr1.length; var type=['null','array','window','date','undefinded','number','string','boolean','function']; for(;i<n;i++) { t1=typeOf(arr1[i]); t2=typeOf(arr2[i]); if(map1[t1]) map1[t1]++; else map1[t1]=1; if(map2[t2]) map2[t2]++; else map2[t2]=1; } i=0; for(;i<type.length;i++) { if(map1[i] != map2[i]) return false; } } </script> <script src="testData.js"></script></body></html>
testData.js:(转自慕课网)
var result=function(){ //以下为多组测试数据 var cases=[{ arr1:[1,true,null], arr2:[null,false,100], expect:true },{ arr1:[function(){},100], arr2:[100,{}], expect:false },{ arr1:[null,999], arr2:[{},444], expect:false },{ arr1:[window,1,true,new Date(),"hahaha",(function(){}),undefined], arr2:[undefined,(function(){}),"okokok",new Date(),false,2,window], expect:true },{ arr1:[new Date()], arr2:[{}], expect:false },{ arr1:[window], arr2:[{}], expect:false },{ arr1:[undefined,1], arr2:[null,2], expect:false },{ arr1:[new Object,new Object,new Object], arr2:[{},{},null], expect:false },{ arr1:null, arr2:null, expect:false },{ arr1:[], arr2:undefined, expect:false },{ arr1:"abc", arr2:"cba", expect:false }]; //使用for循环, 通过arraysSimilar函数验证以上数据是否相似,如相似显示“通过”,否则"不通过",所以大家要完成arraysSimilar函数,具体要求,详见任务要求。 for(var i=0;i<cases.length;i++){ if(arraysSimilar(cases[i].arr1,cases[i].arr2)!==cases[i].expect) { document.write("不通过!case"+(i+1)+"不正确!arr1="+JSON.stringify(cases[i].arr1)+", arr2="+JSON.stringify(cases[i].arr2)+" 的判断结果不是"+cases[i].expect); return false; } } return true; }(); document.write("判定结果:"+(result?"通过":"不通过"));
0 0
- javascript----类型测试示例
- javascript中的类型转换与测试
- 测试示例
- Javascript示例
- javascript示例
- javascript示例
- 测试类型
- 测试类型
- 测试类型
- 测试类型
- Javascript类型
- javascript类型
- Javascript类型
- javascript类型
- 软件测试测试类型
- java枚举类型示例
- JavaScript中的类型javascript
- JavaScript测试
- MapReduce的个人理解
- mysql存储过程简介
- python操作MongoDB
- java对cookie的操作
- Difference between ScrollView and ListView
- javascript----类型测试示例
- 【javascript学习之三】闭包
- 英语学习——Identity
- day04
- Win7,64位,Python2.7.2安装scipy(whl文件)
- 文件的上传与下载
- struts2 web应用框架的简单搭建步骤
- (1)OpenCV2.4.9在VS2013的环境配置
- 读书