Ho un array costituito da A LOT di Symbol
oggetti:Come dovrei generare ID univoci per un gruppo di oggetti?
var symbols = {
alpha : new Symbol('alpha', 'symbol_0', 'α', 'GreekSymbol'),
beta : new Symbol('beta', 'symbol_1', 'β', 'GreekSymbol'),
gamma : new Symbol('gamma', 'symbol_2', 'γ', 'GreekSymbol'),
delta : new Symbol('delta', 'symbol_3', 'δ', 'GreekSymbol'),
... about 500 of these different types of symbols...
};
Il secondo parametro per l'oggetto Symbol
è un ID che verrà utilizzato in HTML. Poiché le specifiche HTML non consentono ID duplicati, desidero assegnare a ciascun Symbol
un ID univoco ed essere ancora in grado di sapere che questo ID corrisponde a Symbol
. Quindi mi piace l'idea di avere il prefisso symbol_
ma non mi piace l'idea di digitare manualmente symbol_0
tramite symbol_500
.
Come devo generare ID univoci? Posso automatizzare questo processo e generare un ID univoco quando sto dichiarando l'array sopra?
UPDATE
E 'davvero una buona idea per fare questo lato client?
Perché 'makeCounter' non restituisce' 1' ogni volta in cui viene ripristinato il valore di 'var i' ogni volta che si chiama la funzione? – Sir
Si chiama 'makeCounter' * una sola volta *. Succede qui: 'var id = makeCounter();'. Dopodiché chiami la funzione * restituita * da 'makeCounter', che abbiamo assegnato a' id'. Questa funzione * chiude * la variabile 'i', il che significa che ogni invocazione sta incrementando lo stesso contatore. –