我正在学习Javascript ECMA6
,但我遇到了问题,我在书中尝试了一个示例,导致Chrome和Safari不相同,我的问题是我的问题是这是否会影响未来的发展。
var pizzas = ["Margherita", "Mushroom", "Spinach & Rocket", "Pineapple & Sweetcorn"];
delete pizzas[2]
**Safari**
pizzas; //["Margherita", "Mushroom", 3: "Pineapple & Sweetcorn"]
**Chrome**
pizzas; //(4) ["Margherita", "Mushroom", empty, "Pineapple & Sweetcorn"] 0 : "Margherita" 1 : "Mushroom" 3 : "Pineapple & Sweetcorn"
length : 4
Chrome中的Javascript版本:6.3.292.46
在Chrome中,我在Chrome中看到2位的空值,Safari在下一个值中显示“3”,这对于在Javascript中开发非常重要吗?
我认为在Firefox中是相同的结果(其他结果)。
此致
答案 0 :(得分:2)
delete
。它不会更改数组长度或重新索引数组。
而是使用Array#splice()
pizzas.splice(2,1)
将删除从index = 2开始的1个元素,并将数组的长度减少一个
请参阅:Deleting array elements in JavaScript - delete vs splice