是什么使用之间的差值的delete算子阵列元件上,而不是使用该Array.splice方法?
例如:
myArray = ['a', 'b', 'c', 'd'];
delete myArray[1]; // or myArray.splice (1, 1);
如果可以像删除对象一样删除数组元素,为什么还要使用splice方法?
delete将删除对象属性,但不会为数组重新索引或更新其长度。这使得它看起来好像是未定义的:
myArray = ['a', 'b', 'c', 'd'] ["a", "b", "c", "d"] delete myArray[0] true myArray[0] undefined
请注意,实际上并没有将其设置为value undefined,而是从数组中删除了该属性,使其显得未定义。Chrome开发人员工具通过empty在记录阵列时进行打印来明确区分这一点。
myArray[0] undefined myArray [empty, "b", "c", "d"]
myArray.splice(start, deleteCount) 实际上会删除该元素,为该数组重新索引,并更改其长度。
myArray = ['a', 'b', 'c', 'd'] ["a", "b", "c", "d"] myArray.splice(0, 2) ["a", "b"] myArray ["c", "d"]
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。