Forum > Klientspråk > JavaScript
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?
| Skriv utVad är det som inte fungerar nu och får du några felmeddelande?
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?
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?
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.
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.
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
var fight = [];
fight.push({player1: 4600, player2: 2954});
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!