javascirpt中的数组比较

一、首先我们定义两个空数组

var arr1=[];
var arr2=[];
function arrCompare(arr1,arr2){
  if(arr1==arr2){
     ret true;
  }else{
    return false;
  }
}
alert(arrCompare(arr1,arr2));

弹出false。

那么问题出来了。

1:明明都是空数组怎么会不相等呢?

2:那怎么判断两个数组相等呢?

第一,这里创建数组是单独开辟的内存空间,两个数组开辟两个存储块。就行有两个一摸一样的iphone似得,始终是连个而不是一个。

那什么样的情况下两个数组会相等呢。

如 var a=[1];

var b=a;

<pre code_snippet_id="526183" snippet_file_name="blog_20141120_1_8068651" name="code" class="javascript">alert(arrCompare(a,b));这样就会返回ture,因为开始创建了一个数组a,为a分配了内存空间。当赋值给b时,b不会再次开辟内存空间,而会直接引用a的内存空间。所以这个两个数组是相等的。

 
 

你可能感兴趣的:(javascirpt中的数组比较)