Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Każdemu znana pętla z php foreach wyświetla wszystkie elementy z tablicy (bez powtórzenia tych samych), której oczywiście nie ma w js.
Teraz mój problem: Mam skrypt który tworzy mi tablice i sumuje takie same wyniki w pętli while, np.:
Jak każdy zauważył w tablicy powtarzają się (mat[1]), teraz potrzebuję skryptu który zwróci mi: mat[1] = 2.5 mat[2] = 2; Prościej mówiąc wyświetli wszystkie wyniki z bazy bez powtórzeń. Jakieś pomysł? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Kod for (var i in mat){ alert(i); alert(mat[i]); } ps: Cytat foreach wyświetla wszystkie elementy z tablicy (bez powtórzenia tych samych) Coś motasz. foreach nie ma nic do "bez powtórzeń". Foreach otrzymuje tablicę i po niej iteruje. Nie bawi się w żadne bezpowtarzanie - to co dostanie to przetworzy
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Dobra, for, wyświetla mi tablicę, jednak nie mogę użyć =+ w tablicach - jak widać w pierwszym poście, ponieważ wtedy zwraca NaN, jak więc zsumować tablice o takich samych nazwach.
|
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Bo najpierw się przypisuje a potem dodaje. js jest bardziej restrykcyjne niż php.
Kod mat = new Array();
mat[1] = 0.5; mat[2] = 1.5; mat[1] += 2; |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
hmm, o ty właśnie wiem. Tylko, że tablica mat powstaje w pętli i wykonuje się tyle razy ile jest inputów, jako pierwszą wartość w nawiasach bierze wartość selecta_1 a ostatnią wartość inputa_1.
O to chodzi, że cała tablica powstaje dynamicznie, więc jak sprawdzić czy dana wartość (ta w nawiasach) już wystąpiła, i jeśli wystąpiła to prze = dodać +(IMG:style_emoticons/default/questionmark.gif) |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Kod Petla po i
if (typeof mat[i] == 'undefined') mat[i]=0; mat[i] += wartosc; koniec petli |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
"Pętla po i" - nie za bardzo rozumiem.
Czekaj, czyli ta instrukcja warunkowa ma być w pętli for wyświetlającą tablice, czy mojej while tworzącą tablicę.' Jestem początkujący, dlatego proszę o wyrozumiałość i dokładniejsze tłumaczenie. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%)
|
tworzącej
|
|
|
|
Post
#9
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Oczywiście, że tworzącej, co już wsponiał Paweł
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Teraz chyba widzę problem, instrukcja warunkowa którą napisałeś chyba nie działa wedle moich oczekiwań, zobacz:
ja chcę zsumować talice gdzie i jest takie same, nie warość. mat[1] = 0.5; mat[2] = 0.5; mat[1] = 0.5; mat[i] = wartość. Gdzie i jest takie same a nie wartość. |
|
|
|
Post
#11
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Wszystko co podałem jest ok, tylko ty nie umiesz lub nie rozumiesz lub źle wstawiasz lub wszystko naraz
Pokaz lepiej kod, który to wszystko generuje bo do usranej śmierci możemy tak się bawić. |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Dobra, za 20 min wrzucę kod jak będe w domu.
jeszcze raz dzięki za cierpliwość do mnie |
|
|
|
Post
#13
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat jeszcze raz dzięki za cierpliwość do mnie Niedługo wyczerpiesz limit abonamentowy a potem za każde słowo będziesz płacił 50zł więc uważaj (IMG:style_emoticons/default/wink.gif)
|
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
A więc tak html, kod jest dynamiczny, ale pokaże jeden z przekładów:
Oto kod html, z którego chciałbym otrzymać dom: 1.5 (0.5 + 1) oraz lato: 2. Teraz moje wcale nie działające js:
|
|
|
|
Post
#15
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Dobra, inaczej...
Pokaż kod, zanim zacząłeś robić zmiany. Przecież pętla co pokazałeś nie ma prawa działać, bo ani nie zmieniasz lp ani nie zmieniasz i. Pokaz kod jaki miałeś, bo coś czuję ze po zmianach zacząłęś kombinować jak koń pod górkę. |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Masz rację w pętli którą tu wkleiłem brakuje:
i++; Jednak to pierwsze co próbowałem, html, jest taki sam jak był od początku, używam go do kodu php którym wysyłam do mysql, teraz jednak potrzebuję jeszcze dynamicznie informować użytkownika dlatego muszę użyć js. nie mam nic wcześniej. Jest tylko pętla która wykonuje się tyle razy ile jest t_n i r_n (przykład wyżej). Teraz potrzebuję zsumować t_n gdzie r_n są takie same. |
|
|
|
Post
#17
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Coś motasz kolego.
Jeśli i zwiększa w pętli, to nigdy w tej pętli nie będziesz miał sytuacji: mat[1] mat[2] mat[1] Nigdy. Bedziesz miał sytuację: mat[1] mat[2] mat[3] Mówisz więc albo o różnych rzeczach albo już sam nie wiesz o czym mówisz. Nie chcę cię obrazic, nie mam takiego zamiaru. Zwracam ci delikatnie uwagę, że to co mówisz a to co pokazujesz nie trzyma się kupy. |
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Może źle zrozumiałeś, mat[*] *-w nawiasie jest wartość r_n czyli drugiego inputa.
Na przykłąd do r_2 wpiszesz kot, a do t_2 wpiszesz 3, to będzie: mat[kot] = 3. A jeśli pojawi się kilka t_n gdzie r_n jest takie same to je zsumuje. |
|
|
|
Post
#19
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Podałeś kod. Odniosłem się do tego kodu. Ten kod nigdy nie będzie miał tego co ci napisałem
mat[kot] = 3. Jaki mat od kot? W pętli masz i które jest liczbą. Mówisz o jednym, kod pokazujesz zupełnie inny. Proszę poraz ostatni: pokaż kod jaki masz, a nie jakiś wirtualny który tworzysz na poczekaniu. Jeśli zaś to jest kod, który masz to przestan wymyślać jakieś historyjki o 'kot', bo to ma się nijak do kodu, który pokazujesz. |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 127 Pomógł: 0 Dołączył: 5.08.2010 Ostrzeżenie: (10%)
|
Kod właśnie jest dobry, zmyliła cię pętla która właśnie jak napisałeś pisałem na poczekaniu, i jest liczbowe i rośnie o 1 z każdym wykonaniem żeby pętla mogła się skończyć, i nie ma nic do mat.
Może prościej będzie jak pokaże ci mój kod php, który właśnie chcę zrobić w js: Tworzenie tablicy:
Sumowanie takich samych:
Takie foreach sumował mi tablice $materialy gdzie pierwsza wartość w nawiasach była taka sama. Ten post edytował yarek12 17.06.2011, 12:40:39 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 23:02 |