如果你定义了一个数组,然后你想清空它。 通常,你会这样做:
// 定义一个数组
var list = [1, 2, 3, 4];
function empty() {
//清空数组
list = [];
}
empty();
但是,这有一个效率更高的方法来清空数组。 你可以这样写:
var list = [1, 2, 3, 4];
function empty() {
//empty your array
list.length = 0;
}
empty();
然而,如果你复制了一个数组(A 和 Copy-A),如果你用list.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);
//[] [] [1, 2, 3] []
更多内容请看Stackoverflow: difference-between-array-length-0-and-array
扩展阅读: