Javascript删除比拼接

时间:2012-09-19 18:44:31

标签: javascript arrays element splice

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

是来源:

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/ pay anantion to function animate,第三个功能从底部

1 个答案:

答案 0 :(得分:8)

为什么不首先拼接?

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

此处无需delete