У меня была следующая функция, в которой идентификатор просматривался в массиве объектов, искал соответствующий объект и возвращал его имя.
function find_object(id) {
$.each(array_of_objects, function(index, obj) {
if (obj.id === id) {
console.log('returning');
console.log(obj.name);
return obj.name;
}
});
}
Очень запутанно, он всегда регистрировал быправильный obj.name
, но возвращаемое значение всегда будет undefined
.
В конце концов я понял, что оператор return
, похоже, на самом деле не возвращается, и переписал функцию следующим образом:
function find_object(id) {
var obj_name;
$.each(array_of_objects, function(index, obj) {
if (source.uuid === uuid) {
obj_name = obj.name;
}
});
return obj_name;
}
И теперь это работает правильно. Что происходит?