我正在研究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,第三个功能从底部
答案 0 :(得分:8)
为什么不首先拼接?
var s1 = elementsOrder.indexOf(id);
elements.splice(s1,1);
elementsOrder.splice(s1,1);
此处无需delete
。