<!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){
????????????//數(shù)組長度不等直接返回false,不用進行下一步判斷了
????????????if(arr1.length?==?arr2.length){
????????????????//獲取arr1,arr2中的數(shù)據(jù)類型
????????????????var?arr1Proto?=?getPrototype(arr1);
????????????????var?arr2Proto?=?getPrototype(arr2);
????????????????
????????????????//判斷arr1中有的數(shù)據(jù)類型在arr2中能否找到
????????????????arr1Proto.forEach(function(item,index,arr){
????????????????????if(!arr2Proto.indexOf(item)){
????????????????????????return?false;
????????????????????}
????????????????});
????????????????return?true;
????????????}
????????????return?false;
????????}
????????
????????/*?
?????????*?獲取數(shù)組成員的數(shù)據(jù)類型
?????????*/
????????function?getPrototype(arr){
????????????var?protoArr?=?[];
????????????arr.forEach(function(item,index,arr){
????????????????//根據(jù)視頻里講到的,使用Object.prototype.toString有個檢測null的兼容性問題
????????????????,所以對null進行另外檢測,當數(shù)組成員為null時則將它的數(shù)據(jù)類型設(shè)置為"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>
2016-09-05
沒有問題