JavaScript: Jak smazat záznam key+value z pole? delete nebo splice?

by Zdeněk Večeřa 0 Comments

Mějme následující JavaScriptový kód definující jednorozměrné pole:

var myHash = new Array();
myHash[0] = 'JavaScript je';
myHash[1] = 'prostě';
myHash[2] = 'zábava.';

Jak smazat druhou položku (key+value) z JavaScriptového pole?

Když se rozhodneme smazat druhou položku pole (prostě) pomocí delete:

delete myHash[1];

…dostaneme:

var myHash = new Array();
myHash[0] = 'JavaScript je';
myHash[1] = null;
myHash[2] = 'zábava.';

Pokud tedy očekáváte, že se smaže celá druhá položka, tak nikoli. Což může být někdy problém.

$.each(myHash, function(key, value) {
 alert(value);
});

…vypíše v následujících krocích:

1/ JavaScript je
2/ undefined
3/ zábava.

Smazání položky pole pomocí metody splice

Pro odstranění celého záznamu (key+value) je proto rozumnější použít metodu splice:

myHash.splice(1, 1);

Po otestování:

$.each(myHash, function(key, value) {
 alert(value);
});

…vypíše:

1/ JavaScript je
2/ zábava.

Více info o splice na w3schools.com.



Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>