Horizn
2018-09-19 16:53
<!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 type(a){
return a === null ? '[object Null]':Object.prototype.toString.apply(a); //hack ie678
//判断并获取TYPE类型
}
function arraysSimilar(arr1, arr2){
if(!Array.isArray(arr1)||!Array.isArray(arr2)||arr1.length!==arr2.length){return false;}//判断是否是数组,数组长度是否相等。
var arr3=[];
var arr4=[];
for(var i in arr1){
arr3.push(type(arr1[i]));
arr4.push(type(arr2[i]));
}//转换数组变量type给arr3,arr4?
//?为什么for-in只在arr1里面迭代
if(arr3.sort().toString()==arr4.sort().toString()){
return true;
}
else{
return false;
}//比较排序后的数组字符串是否相等
}
</script>
<script src="testData.js"></script>
</body>
</html>
转换数组变量type给arr3,arr4?--- 这个只是为了将对应的元素的类型放在新的数组里
为什么for-in只在arr1里面迭代---因为两个数组的长度一样,所以使用哪一个迭代都一样的
return a === null ? '[object Null]':Object.prototype.toString.apply(a);里面的[object Null]这个是什么东西,干什么的?
JavaScript深入浅出
281112 学习 · 1020 问题
相似问题