Autor Zpráva
blizzboz
Profil
Môže mi niekto vysvetliť prečo zápis:

var hashtable = {};
hashtable["name"] = 'Machine Gun Funk';
hashtable["interpret"] = 'Notorious B.I.G';
hashtable["album"] = 'Ready to Die';


neni ekvivalentný zápisu:

var hashtable = new Array();
hashtable["name"] = 'Machine Gun Funk';
hashtable["interpret"] = 'Notorious B.I.G';
hashtable["album"] = 'Ready to Die';


?

//oprava
Nox
Profil
nemělo by být "new Array()"?

{} je objekt - literál, svázané s Object.prototype
new Array() - instance objektu typu Array, svázané s Array.prototype

Edit 1:
když si klikneš na "Array", dostane tě to na https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array, kde je mj. psané Note that you shouldn't use it as an associative array, use Object instead. odkazující na http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful/


Edit 2:
možná si se spletl a myslel jsi
var hashtable = [];

v tom případě by to ekvivalentní bylo, [] je pole - literál

Edit 3:
http://www.json.org/
Chamurappi
Profil
Reaguji na blizzboza:
Protože {} je objekt (tedy obecný Object), nikoliv pole. Nové prázdné pole lze zapsat jako [].
Používat pole (tedy Array) na skladování něčeho jiného než sledu hodnot (očíslovaných indexy) není vhodné.
V obou kódech je nesmyslný var na řádcích 2 až 4.
blizzboz
Profil
Nox, Chamurappi:
jj malo tam byť new Array. a tie var tam tiež nemali byť(som nevyspatý). No vpodstate som si myslel že pole Array a asociatívne pole je ten istý typ a že je javasriptu jedno či sa ako id použije číslo alebo reťazec.
_es
Profil
blizzboz:
Výraz {} je ekvivalentný výrazu new Object().
Výraz [] je ekvivalentný výrazu new Array().

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0