Я проходил одно из упражнений javascript из java-кода и сталкивался с этим. Следующий код предоставляется кодексадой.базовый javascript - обращение к объекту в массиве
var friends = {
bill: {
firstName: "Bill",
lastName: "Gates",
number: "1",
address: ['abc', 'def', 'ghi']
},
steve: {
firstName: "Steve",
lastNAme: "Jobs",
number: "2",
address: ['abc', 'def', 'ghi']
}
};
var list = function(obj) {
for (var prop in obj) {
console.log(prop);
}
};
var search = function(name) {
for (var prop in friends) {
if (friends[prop].firstName === name) {
console.log(friends[prop]);
return friends[prop];
}
}
};
То, что я не понимаю, в функции поиска, поэтому мне нужно выписывать «друзей [проп]» вместо того, чтобы просто «подпирать». Если цикл for/in выполняет итерацию через каждое свойство в друзьях (array?), Почему мне нужно снова указать, к какому массиву принадлежит каждый элемент? Почему я не могу использовать следующий код?
var search = function(name) {
for (var prop in friends) {
if (prop.firstName === name) {
console.log(prop);
return prop;
}
}
};
Ну, это потому, что для циклов в JavaScript немного сбивает с толку. Проверьте http: // stackoverflow.com/a/9329476/60518 –
, пожалуйста, прочитайте редактирование, сделанное мной в ответ - это очень важно или вы можете столкнуться с неожиданными ошибками. – Christoph