5

有什么理由为什么应该使用一个而不是另一个?

例如

var arData=['a','b','c'];
arData.slice(1,1);//removes 'b'

var arData=['a','b','c'];
delete arData[1];//removes 'b'
4

2 回答 2

30

delete留给你[ 'a', undefined, 'c' ]

splice留给你[ 'a', 'c' ]

slice不对原始数组做任何事情:)但它会[ 'b' ]在您的代码中返回

于 2012-04-25T23:07:06.607 回答
6

delete只制作数组的某个位置,undefined但数组仍然包含 3 个项目:['a',undefined,'c']

另一种方法是splice而不是slice。splice 完全删除了该项目及其位置,因此您最终得到['a','c']

于 2012-04-25T23:08:19.650 回答