case9的arr1:null,arr2:null,这俩的类型肯定一致啊,为啥expect是false?
case11的arr1:"abc",arr2:"cba",这俩类型也一致,怎么expect又是false?
贴上我的代码:
function arraysSimilar(arr1, arr2){ //判断两者是否都为数组,任意一个不是都返回false if(Object.prototype.toString.apply(arr1).slice(8,-1) !== "Array" || Object.prototype.toString.apply(arr2).slice(8,-1) !== "Array") return false; // 如果俩数组长度不等,也直接false if(arr1.length !== arr2.length) return false; //用于接收两个数组的每一项的类型 var typeStr1=[],typeStr2=[]; for(var i=0;i < arr1.length; i++){ typeStr1.push(Object.prototype.toString.apply(arr1[i])); typeStr2.push(Object.prototype.toString.apply(arr2[i])); } //排序后组装成字符串,如果不一致则两个数组内的元素类型不一致,反之一致 if (typeStr1.sort().toString() !== typeStr2.sort().toString()){ return false; }else{ return true; } }
注意看题,这两个不是数组