Estoy construyendo una matriz de ortografías, y para una búsqueda rápida quiero tener la propiedad de cada elemento como la ortografía, por lo tanto:
var spellings=[]; var spelling="fred"; spellings[spelling]="page 1";Esto me permite, para cualquier ortografía, recuperar información al respecto mediante una simple búsqueda: por lo tanto, ortografías ["fred"] devolverá la cadena "página 1". Todo esto funcionó a la perfección, durante muchos miles de ortografías, hasta que un día mi programa encontró la ortografía "longitud". Así lo hizo felizmente:
var spelling="length"; spellings[spelling]="page 2";Con lo cual, se desató el infierno. Aparece el error "Error de rango no detectado: longitud de matriz no válida". Porque, por supuesto, cada matriz de javascript tiene una propiedad "longitud", que es un número que devuelve la cantidad de elementos en la matriz. Por lo tanto, si mi matriz de deletreos tiene cinco elementos, deletreos.longitud (o deletreos["longitud"]) devuelve el número 5. Mi intento de asignar una cadena o algún otro objeto a deletreos["longitud"] en consecuencia falla.
En mi caso, hay una solución bastante fácil, que me cuesta un poco de información. Simplemente escriba en mayúscula la inicial de "longitud", por lo tanto:
var spelling="Length"; spellings[spelling]="page 2";Esto funciona, pero no es muy bueno. Alternativamente, podría reescribir todo el proceso para que la ortografía no se use como claves para la matriz. ¿Alguien tiene una solución mejor?