javascript:为什么需要删除数组的0索引

cae*_*ang 4 javascript underscore.js

在下划线源代码中,在数组上应用shift或splice后,如果数组的长度为零:

 if ((name == 'shift' || name == 'splice') && obj.length === 0) delete obj[0];
Run Code Online (Sandbox Code Playgroud)

任何想法仍然需要这样做: delete obj[0]

t.n*_*ese 7

在问题跟踪器中搜索显示我的假设是正确的,它只是一个IE错误的修复.

IE错误与splice()和shift():

jdalton在2011年12月6日评论
IE错误时使用splice()和shift(),当使用带有_(...)的类数组对象时,无法删除0索引值.
IE兼容模式和IE <9都有错误的Array shift()和splice()函数,即使length属性设置为0,也无法删除类数组对象的最后一个元素object [0].