javascirpt中的数组比较
2014-11-20 12:59
148 查看
一、首先我们定义两个空数组
弹出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的内存空间。所以这个两个数组是相等的。
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的内存空间。所以这个两个数组是相等的。
相关文章推荐
- 指针与数组的比较
- 比较一个数组中,是否有相等的元素的不同方法比较
- 数组方法执行效率的比较
- 比较两个有序数组中是否有相同数字
- 对三维数组进行排序,x相等时比较y的大小,y相等时比较z的大小,用到qsort函数。
- JS两个数组比较,删除重复值的巧妙方法(推荐)
- 数组随机求和比较的Java算法
- 2376_ants(巧妙避开了申请大容量数组,思路上采用单个蚂蚁独立分析,而非将全部数据输入后才统一比较)
- 字符串string和内存流MemoryStream及比特数组byte[]互转比较
- php-Arrays 函数-array_diff_key-使用键名比较计算数组的差值
- 数组排序方法的性能比较(3):LINQ排序实现分析
- C语言数组清空的几种方法比较
- C++中数组名与指针的用法比较
- 面试题目-比较两个数组的内容是否一致
- 怎么比较两个数组中的元素,取出相…
- 通过3(2/n)次比较同时找到数组最大和最小值(python)
- JAVA两个数组间元素的比较(找出相同或者不同元素)
- Java中三种比较常见的数组排序
- C#索引器-索引器与数组属性的比较
- 求一个数组中的最大值和最小值,要求将比较次数减小至3N/2