问答详情
源自:1-6 编程练习

题目数据是不是有误?

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;
    }
}


提问者:阿名 2020-02-08 22:49

个回答

  • mzyy
    2020-02-12 06:08:26
    已采纳

    注意看题,这两个不是数组