Thread View: pl.comp.lang.javascript
4 messages
4 total messages
Started by bagno
Wed, 16 Dec 2009 20:10
smieci w tablicy po dodaniu nowych metod
Author: bagno
Date: Wed, 16 Dec 2009 20:10
Date: Wed, 16 Dec 2009 20:10
32 lines
1878 bytes
1878 bytes
Witam
Mialem sobie tablice i bylo fajnie. Potem dodalem do programu
znaleziony gdzies kawalek kodu (menu typu dropdown) ktory robi
miedzy innymi cos takiego :
if (typeof Array.prototype.indexOf == "undefined") {
Array.prototype.indexOf = function(item) {
for (var i = 0; i < this.length; i++) {
if (this[i] === item) {
return i;
}
}
return -1;
}
}
No i program zaczal mi sie sypac. Okazuje sie, ze po dodaniu tej metody
nagle przy przegladaniu tablic dostaje element 'indexOf'
Uzywam zwyklego
for (indeks in tablica)
{
}
i ostatni element to zawsze te indexOf.
Jak sie tego czegos pozbyc ? Nie bede w 100 miejscach dopisywal, ze
jezeli indeks to indexOf to continue.
Czy takie zachowanie jest normalne ?
Re: smieci w tablicy po dodaniu nowych metod
Author: William Bonawentura
Date: Thu, 17 Dec 2009 06:49
Date: Thu, 17 Dec 2009 06:49
19 lines
1420 bytes
1420 bytes
Użytkownik "bagno" <bagno@o2.pl> napisał w wiadomości
news:hgbf0u$oc7$1@atlantis.news.neostrada.pl...
>
> Czy takie zachowanie jest normalne ?
>
Tak. To znaczy ty nieprawidłowo wyszukujesz atrybuty WŁASNE obiektu. Winno
być:
for (indeks in tablica) {
if (tablica.hasOwnProperty(indeks )) {
....
}
}
Spróbuj "przepuścić" swój kod przez walidator np. www.jslint.com. Pomoże ci
to unikać typowych błędów JS.
Re: smieci w tablicy po dodaniu nowych metod
Author: bagno
Date: Thu, 17 Dec 2009 08:06
Date: Thu, 17 Dec 2009 08:06
25 lines
1699 bytes
1699 bytes
Użytkownik "William Bonawentura" <news@ipartners.pl> napisał w wiadomości
news:hgcka4$28ei$1@news2.ipartners.pl...
>
> Użytkownik "bagno" <bagno@o2.pl> napisał w wiadomości
> news:hgbf0u$oc7$1@atlantis.news.neostrada.pl...
>>
>> Czy takie zachowanie jest normalne ?
>>
>
> Tak. To znaczy ty nieprawidłowo wyszukujesz atrybuty WŁASNE obiektu. Winno
> być:
>
> for (indeks in tablica) {
> if (tablica.hasOwnProperty(indeks )) {
> ....
> }
> }
I w kazdej petli mam to sprawdzac ? Ten javascript to jednak dziwny jest.
> Spróbuj "przepuścić" swój kod przez walidator np. www.jslint.com. Pomoże
> ci to unikać typowych błędów JS.
O niektorych typowych bledach wole nie wiedziec.
Re: smieci w tablicy po dodaniu nowych metod
Author: William Bonawentura
Date: Thu, 17 Dec 2009 11:18
Date: Thu, 17 Dec 2009 11:18
12 lines
1463 bytes
1463 bytes
Użytkownik "bagno" <bagno@o2.pl> napisał w wiadomości news:hgcoqg$615$1@inews.gazeta.pl... > > I w kazdej petli mam to sprawdzac ? Ten javascript to jednak dziwny jest. > Jest bardzo dziwny :) Musisz sprawdzać w tych pętlach gdzie interesują cię tylko klucze WŁASNYCH atrybutów obiektu. Jest to zdecydowanie nieintuicyjne w stosunku do innych języków programowania. Ale tak samo jest i np. z domyślną globalnością zmiennych.
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads