开发者社区> 问答> 正文

在JavaScript中删除数组元素-Delete与Splice

是什么使用之间的差值的delete算子阵列元件上,而不是使用该Array.splice方法?

例如:

myArray = ['a', 'b', 'c', 'd'];

delete myArray[1]; // or myArray.splice (1, 1);

如果可以像删除对象一样删除数组元素,为什么还要使用splice方法?

展开
收起
保持可爱mmm 2020-01-08 17:09:44 413 0
1 条回答
写回答
取消 提交回答
  • 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

    2020-01-08 17:10:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载