#javascript #for-loop
#javascript #для-цикла
Вопрос:
Я читаю книгу «JavaScript для веб-дизайнеров» и пришел к этому примеру:
var fullName = {
"first": "John",
"last": "Smith"
};
for (var name in fullName) {
console.log(name ": " fullName[name]);
}
Вывод:
"first: John"
"last: Smith"
Чего я не понимаю, так это: где мне указать программе получить строку «first» и «last». Я имею в виду, задействуя объект «Полное имя», я не вижу, как «имя» может быть связано с «первым» и «последним». Надеюсь, это понятно.
Вы можете помочь? Большое спасибо!
Комментарии:
1.
for
цикл перебирает ключи вашего объекта (которые сохраняются вname
), и затем вы получаете доступ к соответствующим значениям, таким как normal (fullName[name]
)
Ответ №1:
for..in
перебирает ключи объекта. Затем вы можете получить доступ к значениям объектов по имени, используя скобки.
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]);
}
Ответ №2:
Это довольно просто изучить и / или понять. Вы перебираете все свойства объекта fullName
. Для каждого свойства вы присваиваете ему временное имя / псевдоним name
Таким образом, вы могли бы изменить его на for (var anything in fullName)
, а затем в теле цикла for вы бы ссылались на каждое свойство по имени anything
следующим образом:
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
Цикл будет перебирать ключи объекта. Если вы используете это для массива, то он (большинство браузерных движков) преобразует массив в объект за кулисами (подробнее о режиме словаря) и выполняет итерацию ключей.
Вы можете просмотреть ключи, используя
var fullName = {
"first": "John",
"last": "Smith"
};
console.log(Object.keys(fullName));
И, по сути, результат этого вызова затем повторяется. Имейте в виду, что использование for..in
не гарантирует порядок пар ключ-значение.
Ответ №4:
в приведенном выше коде name
представляет ключ объекта,
первый и последний — оба ключа в объекте. и может использоваться для доступа к значению в объекте.
как и в первом запуске цикла, это будет что-то вроде этого
for("first" in fullName) {
console.log("first" ": " fullName["first"] //John);
}
Ответ №5:
Когда вы перебираете объект, вы перебираете ключи. Ключами этого объекта являются first
и last
. Обратитесь к https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for…in для получения дополнительной информации.