2017-12-15 1 views
0

Ich lerne Javascript ECMA6, aber ich habe ein Problem, ich versuche ein Beispiel aus meinem Buch und Ergebnisse in Chrome und Safari nicht gleich, meine Frage ist meine Frage ist, ob dies Entwicklungen in der Zukunft beeinflussen wird .Unterschied im Browser mit 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 

Version Javascript in Chrome: 6.3.292.46

In Chrome I leeren Wert in 2-Position in Chrome und Safari sehen zeige ein in dem nächsten Wert '3' detele, das ist wirklich wichtig ist, zu entwickeln, in Javascript?

Ich denke, dass in Firefox das gleiche Ergebnis (anderes Ergebnis) ist.

Grüße

Antwort

2

delete sollte nicht auf Arrays verwendet werden. Die Array-Länge wird nicht geändert oder das Array wird neu indiziert.

Stattdessen verwenden Array#splice()

pizzas.splice(2,1) 

wird beginnend 1 Element bei Index entfernen = 2 und die Länge des Arrays zu reduzieren, indem man auch

Siehe: Deleting array elements in JavaScript - delete vs splice

+0

Perfect! Aber was ist der eigentliche Zweck, um zu löschen (in meinem Buch verwenden die Autoren dies zum Entfernen von Werten aus Arrays) –

+0

Das klingt wie ein gruseliges Buch. Oder möglicherweise sehr, sehr alt. Oder Sie haben es aus dem Zusammenhang genommen und sie löschen Eigenschaften von Objekten in Arrays – charlietfl

+0

Das Buch ist Novize to Ninja Javascript, haben Sie ein Buch am neuesten Stand? –

Verwandte Themen