1

我正在研究 javascript 项目,其中有 2 个数组 1. elements 2. elementsOrder ;elementsOrder 数组包含每个元素的名称,elements 数组包含每个元素的所有属性。当我想从每个数组中删除一个元素时,我使用“delete”内置函数执行此操作,但它不会删除元素仅将其设置为未定义,因此我使用拼接方法推出那些未定义的元素,但它没有不行。

这是来源:

var s1 = elementsOrder.indexOf(id);
delete elements[s1];
delete elementsOrder[s1];

它完成了这项工作并顺利地一一“未定义”设置元素,但是当我这样做时:

var s1 = elementsOrder.indexOf(id);
delete elements[s1];
delete elementsOrder[s1];
elements.splice(s1, 1);
elementsOrder.splice(s1, 1);

使用简单的拼接方法不起作用

var s1 = elementsOrder.indexOf(id);
elements.splice(s1, 1);
elementsOrder.splice(s1, 1);

我在我的 Javascript Canvas 项目中使用这段代码来为一些画布对象设置动画,这样我可以很容易地看到“删除”何时可以顺利进行并且“取消定义”元素一个接一个,并且拼接不会那么顺利并且不会放置一一出元素

请参阅http://jsfiddle.net/7ZuuZ/关注功能动画,倒数第三个功能

4

1 回答 1

8

为什么不首先拼接呢?

var s1 = elementsOrder.indexOf(id);
elements.splice(s1,1);
elementsOrder.splice(s1,1);

这里没有必要delete

于 2012-09-19T18:47:03.903 回答