Vinnaren i pepparkakshustävlingen!
2017-02-22, 00:04
  #1
Medlem
Hejsan, sitter och arbetar lite i min bok "Head first Javascript" och har stött på en fråga. Övningen är att man ska ta olika kodrader man fått, och sätta in på tomrum, alltså ställen där ord saknas. Min fundering jag fått nu är när man skapar variabeln speak, då hunden ska säga något. Jag har svarat bark där, en variabel man skapar mellan objectet och speak. Men boken anser att det ska vara dog.bark, och jag undrar hur detta kan komma sig. Variabeln bark tillhör ju inte dog-objektet eller??

Kod:
var dog ={
name: "fido",
weight: 20.2,
age: 4,
breed: "mixed",
activity: "fetch balls"
};
var bark;
if (dog.weight > 20){
bark="WOOF WOOF";
} else{
bark = "woof woof";
}
var speak = dog.name + " says " + bark + " when he wants to " + dog.activity;
console.log(speak);
Citera
2017-02-22, 00:11
  #2
Medlem
BNCs avatar
Du är helt rätt ute.

Felet finns med i bokens errata:
http://www.oreilly.com/catalog/errat...=0636920027065
Citera
2017-02-22, 00:32
  #3
Medlem
Citat:
Ursprungligen postat av BNC
Du är helt rätt ute.

Felet finns med i bokens errata:
http://www.oreilly.com/catalog/errat...=0636920027065

Hade man ju kunnat kolla innan man ställde frågan, men tackar för hjälpen.
Citera
2017-04-06, 23:13
  #4
Medlem
Hej, nu är jag i gång igen. Nu med en liten större uppgift jag inte för allt i världen kan räkna ut.

Kod:
function parseGuess(guess) {   
    var alphabet = ["A", "B", "C", "D", "E", "F", "G"];
    if (guess === null || guess.length !== 2) {      
        alert("Oops, please enter a letter and a number on the board.");   
    } else {      
        firstChar = guess.charAt(0);      
        var row = alphabet.indexOf(firstChar);       
        var column = guess.charAt(1);        
        if (isNaN(row) || isNaN(column)) {         
            alert("Oops, that isn't on the board.");      
        } else if (row < 0 || row >= model.boardSize || column < 0 || column >= model.boardSize) {  //Om row är mindre än 0 eller större än eller lika med 5. Om column är mindre än 0 eller lika med eller större än 5 gör en alert.       
            alert("Oops, that's off the board!");      
        } else {         
            return row + column;      
        }   
    }   return null;
}

console.log(parseGuess("A0"));
console.log(parseGuess("B6"));
console.log(parseGuess("G3"));
console.log(parseGuess("H0"));
console.log(parseGuess("A7"));

Problemet blir när jag kör funktionen. Första, andra och tredje anropet sker klockrent. Så även fjärde, H finns inte i arrayen, och därför blir det null. Men femte anropet, "A7", så finns ju A, men 7 är större än boardsize, då denna är 5 just för tillfället, så hur fasen ska jag debugga detta, tips och hjälp tack :-)
Citera
2017-04-07, 00:48
  #5
Medlem
Du jämför en string med en int
Du måste parsa column till en int, använd parseInt()
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback