JavaScript入门基础--数据类型编程练习
来源:互联网 发布:淘宝质量好的男装店 编辑:程序博客网 时间:2024/06/05 09:27
JavaScript入门基础--数据类型编程练习
请在index.html文件中,编写arraysSimilar函数,实现判断传入的两个数组是否相似。具体需求:
1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。
2. 数组的长度一致。
3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.
当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"。
index.html
<!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 */ function arraysSimilar(arr1, arr2){ if(arr1 instanceof Array && arr2 instanceof Array){ var key1 = [],key2 = [],len = arr1.length,len2=arr2.length; // 数组的长度相等判断 if(len!=len2){return false;} // 类型相同判断 if(len){ // 获取类型列表 for(var i= 0;i<len;i++){ // 数组1的类型列表字串 var item1 = arr1[i], typeFirst = typeOf(item1); if(key1.join().indexOf(typeFirst)<0){ key1.push(typeFirst); } // 数组2的类型列表字串 var item2 = arr2[i],typeSecond = typeOf(item2); if(key2.join().indexOf(typeSecond)<0){ key2.push(typeSecond); } } key1 = key1.sort(); key2 = key2.sort(); // 类型字串比较 if(key1.join() == key2.join()){ return true; }else{ return false; } }else{ // 空数组相等 return true; } }else{ // 非数组 return false; } } /** * 类型判断方法 * param item * return type(string,function,boolean,number,undefined,null,window,Date,Array,object) */ function typeOf(item){ var type = typeof item; if(type != "object"){ // 判断基本类型string,function,boolean,number,undefine }else if(item === null){ // check null type = "null"; }else if(item === window){ // check window type ="window"; }else{ // 判断object类型object,date,array if(item instanceof Date){ type = "date"; }else if(item instanceof Array){ type = 'array'; }else{ type = 'object'; } } return type; } </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编程入门 --数据类型(null、 undefined)
- JavaScript的基础练习(对象编程)
- (一)JavaScript入门基础+数据类型+表达式运算符
- JavaScript入门——变量与数据类型基础
- javascript基础编程の变量、对象、数据类型及函数
- java数据类型基础题练习
- javascript的基础数据类型
- javaScript基础:数据类型转换
- javascript基础--数据类型
- javascript数据类型、变量基础
- JavaScript基础之数据类型
- JavaScript基础(数据类型)
- JavaScript基础-基本数据类型
- [Java]基础入门练习
- Hadoop自定义数据类型编程练习
- 指针指向字符串,函数指针,多功能函数调用
- lesson6.7System和Runtime
- linux线程学习(3)
- Arcgis---坐标转换API
- Ubuntu16下编译安装Open Babel2.4.1和python绑定
- JavaScript入门基础--数据类型编程练习
- PHP自动捕获Exception,Fatal error等错误和异常
- WPF TabControl 样式
- leetcode 8(week 13)
- c#为什么叫csharp(因为C/C++在先,就起名字为“C++++”,即4个加号,为了简单,就写成了“C#”,这个解释有意思)
- [JAVA] 日常填坑 java.lang.SecurityException: Prohibited package name: java.xxx
- JavaScript中的面向对象的理解
- 量化交易如何建立高效的交易系统(二)
- 使用L298n的一些总结和回顾