1-6 编程练习
本节编程练习不计算学习进度,请电脑登录imooc.com操作

编程练习

本习题将验证你是否已经熟练掌握了数据类型知识。记得看完视频讲解,也要结合看书更全面的学习知识哦!

温馨提示:完成任务后,请验证结果窗口显示是否是"判定结果:通过",如是恭喜您,你已经掌握此技能,否则,建议重复学习此内容。

任务

请在index.html文件中,编写arraysSimilar函数,实现判断传入的两个数组是否相似。具体需求:

1. 数组中的成员类型相同,顺序可以不同。例如[1, true] 与 [false, 2]是相似的。

2. 数组的长度一致。

3. 类型的判断范围,需要区分:String, Boolean, Number, undefined, null, 函数,日期, window.

当以上全部满足,则返回"判定结果:通过",否则返回"判定结果:不通过"

 

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb18030">
  5. <title>Untitled Document</title>
  6.  
  7. </head>
  8. <body>
  9. <script type="text/javascript">
  10. /*
  11. * param1 Array
  12. * param2 Array
  13. * return true or false
  14. */
  15. function arraysSimilar(arr1, arr2){
  16.  
  17. }
  18. </script>
  19. <script src="testData.js"></script>
  20. </body>
  21. </html>
  1. var result=function(){
  2. //以下为多组测试数据
  3. var cases=[{
  4. arr1:[1,true,null],
  5. arr2:[null,false,100],
  6. expect:true
  7. },{
  8. arr1:[function(){},100],
  9. arr2:[100,{}],
  10. expect:false
  11. },{
  12. arr1:[null,999],
  13. arr2:[{},444],
  14. expect:false
  15. },{
  16. arr1:[window,1,true,new Date(),"hahaha",(function(){}),undefined],
  17. arr2:[undefined,(function(){}),"okokok",new Date(),false,2,window],
  18. expect:true
  19. },{
  20. arr1:[new Date()],
  21. arr2:[{}],
  22. expect:false
  23. },{
  24. arr1:[window],
  25. arr2:[{}],
  26. expect:false
  27. },{
  28. arr1:[undefined,1],
  29. arr2:[null,2],
  30. expect:false
  31. },{
  32. arr1:[new Object,new Object,new Object],
  33. arr2:[{},{},null],
  34. expect:false
  35. },{
  36. arr1:null,
  37. arr2:null,
  38. expect:false
  39. },{
  40. arr1:[],
  41. arr2:undefined,
  42. expect:false
  43. },{
  44. arr1:"abc",
  45. arr2:"cba",
  46. expect:false
  47. }];
  48.  
  49. //使用for循环, 通过arraysSimilar函数验证以上数据是否相似,如相似显示“通过”,否则"不通过",所以大家要完成arraysSimilar函数,具体要求,详见任务要求。
  50. for(var i=0;i<cases.length;i++){
  51. if(arraysSimilar(cases[i].arr1,cases[i].arr2)!==cases[i].expect) {
  52. document.write("不通过!case"+(i+1)+"不正确!arr1="+JSON.stringify(cases[i].arr1)+", arr2="+JSON.stringify(cases[i].arr2)+" 的判断结果不是"+cases[i].expect);
  53. return false;
  54. }
  55. }
  56. return true;
  57.  
  58. }();
  59. document.write("判定结果:"+(result?"通过":"不通过"));
下一节