很多时候,我们想删除数组的所有元素,作为选择,我们有一个任务列表,并且我们希望同时删除所有任务。
考虑以下元素列表:
let items = ["tea", "coffee", "milk"];
要从数组中删除所有元素,我们将其值设置为空数组
items = [];
这可以很好地工作,并且您会发现该示例一直在使用。但是这有一个问题...
:
let items = ["tea", "coffee", "milk"];
let copy = items;
copy , copy items.
console.log(items);
console.log(copy);
.
, - , , , .
copy[2] = "oranges";
console.log(items);
console.log(copy);
items, , , :
items = [];
, items copy
console.log(items);
console.log(copy);
, items , copy .
, items = [], , copy.
, (array), (object), - , , , .
, , array = [], [] — , .
. obj = {name: 'David'}, obj , , .
let obj = { name: 'David' };
let newObj = obj;
console.log(obj);
console.log(newObj);
obj = null;
console.log(obj);
console.log(newObj);
:
- 0:
let items = ["tea", "coffee", "milk"];
let copy = items;
console.log(items);
console.log(copy);
items.length = 0;
console.log(items);
console.log(copy);
- splice :
let items = ["tea", "coffee", "milk"];
let copy = items;
console.log(items);
console.log(copy);
items.splice(0, items.length);
console.log(items);
console.log(copy);
, , , items = [];
:
我们不应为数组或对象创建其他链接,因为这可能导致将来出现不良结果。如果您确定没有需要清除的原始数组的引用(*并且不会出现),则可以使用array = []清除它,否则可以使用以上两种方法之一清除该数组。
让我们改善网络。