Jak w temacie..
Jak sie dostac do elementow obiektu nie po indeksie slownym, a numerycznym?
czyt.
nie tak: result['all']['mitorski']
a tak: result['all'][0]
? Koniecznie tutaj musze pisac metode obiecttoarray?
nospor
8.09.2014, 17:09:45
A czemu i takie kombinacje? Może źle podchodzisz do problemu, ktory masz.
W result['all'] dostaje wszystkich graczy na gieldzie, i chce ich dodac do listy na ekranie... i najlepszy do tego jest for bo sprawdzam przy okazji na biezaco czy doszli nowi gracze czy tez nie. No ale ku mojemu zdziwieniu nie da sie forem przeleciec obiektu i gdzies wyczytalem o map i zmienianiu tego na tablice ale to tez chyba nie najlepsze bo indeks literowy jest zmieniany na liczbowy a to nick gracza w tym momencie. No i nie wiem...
pedro84
8.09.2014, 17:34:20
A pokaż przykładowy element tablicy, ok?
PrinceOfPersia
8.09.2014, 18:29:03
jesli masz tablicę, mozesz przeleciec przez nia tak:
Kod
zmienna.forEach(function(value) {
// value zawiera wartosc elementu
});
czyli dajesz callbacka.
Pytanie tykko co ty tam masz? Pokaz caly kod. Czy faktycznie jest to tablica, a nie zwykly obiekt (nie kazdy obiekt jest tablica).
edit:
o ktorym for mowisz? Jest For jak w C:
Kod
for (var i = 0; i < zmienna.length; i++) {...}
i om jest raczej do tablic. Masz tez for (var klucz in zmienna), tym przelatujesz generalnie obiekty po kluczach.
W nowej wersji Js ma byc jezzcze cos takiego jak for...of
Generalnie... to obiekt. Nie tablica
A probowalem to zrobic tak:
for(var i = 0; i<result['all'].length;i++){
console.log(result['all'][i]);
}
No ale ciagle dostaje undefined
nospor
8.09.2014, 18:56:39
FORem mozna bez problemu leciec po obiekcie....
Kod
for(var i in result['all']) {
alert('klucz: '+i +" wartosc: "+result['all'][i]);
}
Dlatego zawsze od razu pisz jaki masz problem, a nie pytasz o rozwiązanie, ktore ci sie wydaje...
Nie znajoma mi konstrukcja i in something... mniejsza o to.
A jak teraz jeszcze wyciagnac nick gracza skoro indeks po ktorym lecimy to nazwa?
nospor
8.09.2014, 19:03:53
No napisalem przeciez, że I to klucz/indeks czyli Twoj nick.
Ok, troche nie bardzo juz z mysleniem po 12 godzinach programowania... dzieki nospor.
var stockResources = { ts: [], food: [], lumber: [], stone: [], steel: [], inc: 0 };
this.stock = function(currentGameStock){
$('.update').html('Ostatnia aktualizacja: '+game.time(currentGameStock[0]));
stockResources['inc']++;
for( var i in stockResources ){
stockResources[i].push([stockResources['inc'], currentGameStock[i]]);
}
}
A co powiedzie na to?
Konsola zwraca:
Uncaught TypeError: undefined is not a function
W linii gdzie jest push...
Sugestie? Potrzebuje przygotować obiekt który potem przekaże do rysowania wykresów giełdowych. A może... @nospor, źle podchodzę do problemu?
Pyton_000
24.09.2014, 07:33:46
Zobacz przed for co masz w stockResources.
nospor
24.09.2014, 07:33:59
Cytat
A może... @nospor, źle podchodzę do problemu?
Na pewno nie czytasz komunikatow bledow. Wyraznie masz napisane: undefined is not a function
czyli gdzies w ktoryms momencie dostajesz undefined. Sprawdz kiedy, zrob IFa i nie lataj z takimi problemikami po forum. Zdaje się inspirujesz na programiste a nie na cos innego
@nospor Błąd dotyczy pusha

Szukam informacji o alternatywach pushowania tablic w obiektach, jak słusznie zauważyłeś, programista.
@Pyton_000 Object {ts: Array[45], food: Array[45], lumber: Array[45], stone: Array[45], steel: Array[45]…} także spoko.
nospor
24.09.2014, 07:54:15
Ja wiem, czego dotyczy blad. Poraz kolejnu ci pisze, sprawdz na czym operujesz. I to nie przez console.log na calym obiekcie, tylko przez alert na kazdym elemencie z osobna...
var stockResources = {food: [], lumber: [], stone: [], steel: []};
var gameLoop = 0;
this.stock = function(currentGameStock){
$('.update').html('Ostatnia aktualizacja: '+game.time(currentGameStock[0]));
gameLoop++;
var item = 1;
for( var name in stockResources ){
stockResources[name].push([gameLoop, currentGameStock[item++]]);
$.plot("#"+name, [{data:stockResources[name], color:"#33CCCC"}]);
}
}
No i tak działa.
stockResources był obiektem literałowym,
currentGameStock tablicą iteracyjną.
nospor
24.09.2014, 08:44:15
Nie ogarniam.... Mowilem ci zebys sprawdzil co masz to bys widzial. Zamiast tego pokazujesz mi cos, co dziala....
currentGameStock[item++] tutaj indeksami masz liczby 1,2,3,4,5
currentGameStock[i] tutaj indeksami masz teksty: ts, food,.....
Naprawde nie widzisz roznicy?
nospor, powiedziałem że rozwiązałem problem i napisałem dokładnie to samo co Ty.
zjedz snickersa.
nospor
24.09.2014, 08:49:07
Zrozumialem, ze pokazujesz mi kod, ktory dzialal, a chciales zrobic inaczej. Wiec wytlumaczylem ci roznice.

Dlatego poraz kolejny cię proszę: zanim polecisz na forum, sprawdz co zawierają rzeczy, na ktorych pracujesz. Tak robią programiści a ty zdaje się chcesz być jednym z nich
Z 3 miesięcznym doświadczeniem w tym języku nie przeszło mi nawet przez myśl sprawdzanie co jest pod którą zmienną, tutaj mi pomogłeś, dlatego jeszcze o sobie nie mówię programista;)
No a jak nie zrozumiałeś to spoko, lecimy dalej.
nospor
24.09.2014, 08:54:42
Cytat
Z 3 miesięcznym doświadczeniem w tym języku nie przeszło mi nawet przez myśl sprawdzanie co jest pod którą zmienną
Nie wierze, ze nie widziales jeszcze tego linku
Temat: Jak poprawnie zada pytaniePorady tam podane dotyczą każdego języka
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.