浏览器与Javascript的区别

时间:2017-12-15 19:14:28

标签: javascript google-chrome safari

我正在学习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中是相同的结果(其他结果)。

此致

1 个答案:

答案 0 :(得分:2)

不应在数组上使用

delete。它不会更改数组长度或重新索引数组。

而是使用Array#splice()

pizzas.splice(2,1)

将删除从index = 2开始的1个元素,并将数组的长度减少一个

请参阅:Deleting array elements in JavaScript - delete vs splice