Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer

Forum > Klientspråk > JavaScript

Array (troligen) problem

MrXr
MrXr

Gradering

#21061

För det första vill jag ursäkta för den stora kodsnutten.

http://www.aspkoll.se/code/Index.asp?id=681

Den funkade innan jag introducerade den stora arrayen till scriptet.

Jag har suttit ett tag och ändrat fram och tillbaka i koden utan framgång, någon

som kan pin pointa mig i rätt riktning?

 

Redigerades av Shadi den 26 juni 2011. Läs tidigare inlägg.
ID: #21061 | Skapades: 2011-06-26 00:55:17 | Tråden har 7 svar och har lästs 327 gånger.

LP_MAXI
LP_MAXI

Gradering

#21062

Vad är det som inte fungerar nu och får du några felmeddelande?

http://www.lpmaxi.se/
ID: #21062 | Skapades: 2011-06-26 01:40:27

voigtan
voigtan

Gradering

#21063

TypeError: fight[1] is undefined

 

Du har en tom array du försöker sätta specifika platser på, vilket aldrig kommer att fungera.


Skriv om din kod till något man faktist kan förstå:

var fight = [];
fight.push({player1: 4600, player2: 2954});
fight.push({player1: 4474, player2: 2954});
/*...*/

Men skall den beräkna något (verkar vara något typ av fighting spel med "liv"?) så förstå jag inte riktigt varför du skall lägga varje "runda" i en array, det kan du lösa med beräkningar istället, eller?

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 26 juni 2011. Läs tidigare inlägg.
ID: #21063 | Skapades: 2011-06-26 09:13:09

MrXr
MrXr

Gradering

#21065

Beräkningarna ligger i ett php script, javascriptet vill jag bara ska representera en slags player för allt som räknades ut i php scriptet.

Det jag har gjort är att jag har en funktion i php som returnerar en array med all info som sedan jag försöker konvertera till en javascript array för att sedan kunna använda mig av den för att manipulera progress baren efter arrayen varje sekund.

Finns det något enklare sätt att göra detta?

Redigerades av MrXr den 26 juni 2011. Läs tidigare inlägg.
Redigerades av MrXr den 26 juni 2011. Läs tidigare inlägg.
ID: #21065 | Skapades: 2011-06-26 16:44:27

voigtan
voigtan

Gradering

#21066

Ja, beräkningen kan ju ligga i Javascript lika väl som PHP, som det är just nu så är dina javascript objekt globala så jag kan påverka resultatet om jag bara orkar kolla igenom kod.

Du gör inte en riktigt array i javascript, de flesta Arrayer jag någonsin har jobbat med börjar med ett 0 index, sen försöker du populera en position i arrayn som inte finns och om inte den finns så kan du inte lägga in värde i objekten på positionen.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
ID: #21066 | Skapades: 2011-06-26 17:06:24

MrXr
MrXr

Gradering

#21067

Jag vet att folk kan ändra i koden och få ett annat resultat men det är ganska onödigt om du kollat igenom php koden. Om jag skulle ha beräkningen i javascript så skulle det avslöja mer och viktigare saker vilket jag inte känner är något jag skulle vara intresserad av.

Vad är det för fel på arrayen? går det att fixa den lätt?

Det är en loop i php som skapar arrayen så jag skulle lätt kunna fixa den om det är det som krävs, eller är hela strukturen fel?

Jag använde mig av w3schools exempel för arrayer.

ID: #21067 | Skapades: 2011-06-26 17:10:43

voigtan
voigtan

Gradering

#21068

Citerar MrXr:
Vad är det för fel på arrayen? går det att fixa den lätt?
Har redan svarat på den frågan och ett kodexempel som fungera med vettigare än vad w3schools "lär ut".

eller om du nu vill köra vad jag anser dålig JS kod:

var fight = new Array();
fight[0] = {};
fight[0]["player1"] = 4321;
fight[0]["player2"] = 1234
och  bygga vidare på det, du behöver ett objekt i varje array och fyller objektet med propertys som player1 och player2. men detta är samma sak som:

var fight = [];
fight.push({player1: 4600, player2: 2954});
du vill ju bara pushar in data ändå i arrayn.

Hur man ställer en fråga: http://support.microsoft.com/kb/q555375
Redigerades av voigtan den 26 juni 2011. Läs tidigare inlägg.
ID: #21068 | Skapades: 2011-06-26 18:46:42

MrXr
MrXr

Gradering

#21069

 

var fight = [];
fight.push({player1: 4600, player2: 2954});

 

jag såg det men kan man hämta ut värdet ur arrayen på samma sätt?

och indexeras det precis som i php (1,2,3,4,5...)?

 

Edit: Det löste sig!

Tack Voigtan!

Redigerades av MrXr den 26 juni 2011. Läs tidigare inlägg.
ID: #21069 | Skapades: 2011-06-26 19:23:57
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy