2017-12-15 8 views
0

私はJavascript ECMA6を学習していますが、問題があります。私の書籍とChromeとSafariの結果が同じではないという例があります。私の質問はこれが今後の開発に影響するかどうかです。 Chromeでブラウザの違いがJavascriptである

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 

バージョンJavascriptを:私はChromeとSafariで2位に空の値を参照してくださいChromeの6.3.292.46

がdeteleする次の値に「3」を示し、これは開発することが非常に重要ですJavascriptで?

私はFirefoxで同じ結果(他の結果)だと思います。

よろしく

答えて

2

deleteは、アレイ上で使用すべきではありません。配列の長さを変更したり、配列のインデックスを変更したりすることはありません。

代わり

もインデックス= 2で始まる1つの要素を削除し、1により、配列の長さを短くします Array#splice()

pizzas.splice(2,1) 

を使用してください:Deleting array elements in JavaScript - delete vs splice

+0

パーフェクト!しかし、私の本では、著者がこれを配列から値を削除するのに使っています。 –

+0

それは恐ろしい本のように聞こえます。またはおそらく非常に非常に古い。または文脈から取り除き、配列内のオブジェクトのプロパティを削除しています – charlietfl

+0

本はNinja Javascriptの初心者ですが、最新の本がありますか? –

関連する問題