2016-10-13 12 views
6

Czytam książkę "JavaScript dla projektantów stron internetowych" i doszedłem do tego przykładu:Dla .. w pętli - dlaczego to działa?

var fullName = { 
    "first": "John", 
    "last": "Smith" 
}; 
for (var name in fullName) { 
    console.log(name + ": " + fullName[name]); 
} 

wyjście jest:

"first: John" 
"last: Smith" 

Co nie rozumiem jest: gdzie zrobić Mówię programowi, aby uzyskał ciąg "pierwszy" i "ostatni". Mam na myśli, jeżdżąc na rowerze obiekt "fullName", nie widzę jak "imię" może być związane z "pierwszym" i "ostatnim". Mam nadzieję, że jest to jasne. Czy możesz pomóc? Wielkie dzięki!

+1

z 'for' iteruje pętli nad klawiszami swojego przedmiotu (które przechowywane w' name'), a następnie uzyskać dostęp do odpowiednie wartości, takie jak normal ('fullName [name]') – UnholySheep

+0

Będzie to bardziej oczywiste po zmianie nazwy zmiennej 'name' na coś innego, jak' objectProperty' lub 'arrayKey' –

Odpowiedz

12

for..in iteruje po numerze klucze obiektu. Następnie można uzyskać dostęp do wartości obiektów by name using brackets.

var obj = { 
 
    a: 1, 
 
    b: 2, 
 
    c: 3 
 
}; 
 

 
for (var key in obj) { 
 
    console.log('Key:', key); 
 
    console.log('obj[key] == obj["' + key + '"] == obj.' + key); 
 
    console.log('obj.' + key + ' == ' + obj[key]); 
 
}

6

Jest to bardzo proste do nauczenia się i/lub zrozumienia. Przeszukujesz wszystkie właściwości obiektu fullName. Dla każdej właściwości, dajesz mu tymczasową nazwę/alias name

więc można go zmienić na for (var anything in fullName) a następnie w ciele pętli byłoby odwołać każdą właściwość o nazwie anything tak:

for (var anything in fullName) { 

    // anything is an alias for the current property your on of the object you're looping through 
    console.log(anything + ": " + fullName[anything]); 

} 
3

for..in pętla iterację kluczy obiektu. Jeśli użyjesz tego w tablicy, to (większość wyszukiwarek) przekształci tablicę w obiekt za kulisami (czytaj więcej w trybie słownika) i wykonaj iterację klawiszy.

można przeglądać za pomocą klawiszy

var fullName = { 
 
    "first": "John", 
 
    "last": "Smith" 
 
}; 
 
console.log(Object.keys(fullName));

i zasadniczo wynikiem tego połączenia jest następnie powtórzyć. Należy pamiętać, że używanie for..in nie gwarantuje porządku par klucz-wartość.

3

w powyższym kodzie name stanowią klucz obiektu,

pierwszy i ostatni są oba klucze w obiekcie. i można go użyć, aby uzyskać dostęp do wartości w obiekcie.

jak w pierwszym przebiegu pętli będzie to coś takiego

for("first" in fullName) { 
console.log("first" + ": " + fullName["first"] //John); 
} 
Powiązane problemy