_Doogie
2016-09-05 15:03
<!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){ //数组长度不等直接返回false,不用进行下一步判断了 if(arr1.length == arr2.length){ //获取arr1,arr2中的数据类型 var arr1Proto = getPrototype(arr1); var arr2Proto = getPrototype(arr2); //判断arr1中有的数据类型在arr2中能否找到 arr1Proto.forEach(function(item,index,arr){ if(!arr2Proto.indexOf(item)){ return false; } }); return true; } return false; } /* * 获取数组成员的数据类型 */ function getPrototype(arr){ var protoArr = []; arr.forEach(function(item,index,arr){ //根据视频里讲到的,使用Object.prototype.toString有个检测null的兼容性问题 ,所以对null进行另外检测,当数组成员为null时则将它的数据类型设置为"null" if(item == null && item !== undefined){ protoArr.push("null"); }else{ protoArr.push(Object.prototype.toString.apply(item)); } }); return protoArr; } </script> <script src="testData.js"></script> </body> </html>
没有问题
JavaScript深入浅出
281102 学习 · 1020 问题
相似问题
回答 2
回答 1