为了账号安全,请及时绑定邮箱和手机立即绑定

为什么啥都不显示

<!DOCTYPE HTML>

<html>

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=gb18030">

    <title>Untitled Document</title>

    

</head>

<body>

<script type="text/javascript">   


function arraysSimilar(arr1, arr2){

  if(arr1.length==arr2.length){

    var m=0;

    for(var i=0;i<arr1.length;i++){

        for(j=m;j<arr2.length;j++){

            if(Object.prototype.toString.apply(arr1[i])==Object.prototype.toString.apply(arr2[j])){

                var t=arr2[m];

                arr2[m]=arr2[j];

                arr2[j]=t;

                m++;

                break;

            }

            else{

            }

        }

    }

    if(m==arr1.length){

        return true;

    }

    else{

        return false;

    }

  }

  else{

    return false;

  }

}

</script>

<script src="testData.js"></script>

</body>

</html>


正在回答

2 回答

首先你需要先用 Object.prototype.toString.call(arr1) === '[object Array]' 来判断是否是数组;

如下:

function arraysSimilar(arr1, arr2) {
  var num = 0;
  if (Object.prototype.toString.call(arr1) === '[object Array]' && Object.prototype.toString.call(arr2) === '[object Array]') {
    if (arr1.length === arr2.length) {
      for (var i = 0; i < arr1.length; i++) {
        for (var j = 0; j < arr2.length; j++) {
          if (Object.prototype.toString.call(arr1[i]) === Object.prototype.toString.call(arr2[j])) {
            num++;
          }
        }
      }
      if (num === arr1.length) {
        return true;
      }
    }
  }
  return false
}


1 回复 有任何疑惑可以回复我~

原来测试条件里并非都是数组,不能对基本类型使用length方法

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么啥都不显示

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信