length, więc nie da się zastosować zwykłej pętli for. Natomiast przeglądanie za pomocą konstrukcji typu for(n in a), oprócz właściwych pozycji tablicy, zwraca również inne właściwości obiektu klasy Array.Przykład:
var a = [];
a["a"] = "A";
a["b"] = "B";
a["c"] = "C";
for(n in a){
console.log('a("' + n + '") = ' + a[n]);
}
W wyniku wykonania powyższego kodu, na konsoli (w Firebugu) ujrzymy mniej więcej takie coś:
a("a") = A
a("b") = B
a("c") = C
a("contains") = function (v) {
if (v == null) {
return false;
}
for (var i = 0; i < this.length; i++) {
if (this[i] == v) {
return true;
}
}
return false;
}
Widać, że oprócz wartości wpisanych do tablicy, przetwarzana jest również właściwość "contains", która jest wewnętrzną właściwością obiektu klasy Array.Cóż robić więc?
No więc jeśli mamy do czynienia z tablicą asocjacyjną, wystarczy zadeklarować ją w następujący sposób:
var a = {};
Uruchomienie powyższego przykładu z wprowadzoną taką zmianą, spowoduje wyświetlenie już tylko tych wartości, o które nam chodzi.
Brak komentarzy:
Prześlij komentarz