Sri*_*agi 68 javascript arrays
有人可以解释两者之间的概念差异.通过销毁对现有数组的所有引用来读取第二个创建新数组的地方,而.length = 0只是清空数组.但它在我的情况下不起作用
//Declaration
var arr = new Array();
Run Code Online (Sandbox Code Playgroud)
下面是一次又一次执行的循环代码.
$("#dummy").load("something.php",function(){
arr.length =0;// expected to empty the array
$("div").each(function(){
arr = arr + $(this).html();
});
});
Run Code Online (Sandbox Code Playgroud)
但是,如果我替换代码arr =[]
代替arr.length=0
它工作正常.任何人都可以解释这里发生的事情.
Que*_*tin 87
foo = []
创建一个新数组并将其引用分配给变量.任何其他引用都不受影响,仍然指向原始数组.
foo.length = 0
修改数组本身.如果您通过其他变量访问它,那么您仍然可以获得修改后的数组.
通过销毁对现有数组的所有引用来读取第二个创建新数组的地方
那是倒退.它创建一个新数组,不会破坏其他引用.
var foo = [1,2,3];
var bar = [1,2,3];
var foo2 = foo;
var bar2 = bar;
foo = [];
bar.length = 0;
console.log(foo, bar, foo2, bar2);
Run Code Online (Sandbox Code Playgroud)
得到:
[] [] [1, 2, 3] []
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)arr.length =0;// expected to empty the array
它至少是第一次清空阵列.第一次执行此操作后:
Run Code Online (Sandbox Code Playgroud)arr = arr + $(this).html();
...用字符串覆盖数组.
length
字符串的属性是只读的,因此分配0
它不起作用.
归档时间: |
|
查看次数: |
40135 次 |
最近记录: |