В следующем коде функция findById()
фактически ничего не возвращает. console.log()
s запускается и печатается, как и ожидалось, но в результате переменная, к которой вызывается функция, не определена.
Я попытался изменить типы возвращаемых значений, даже просто поставив return true;
в конце без каких-либо условий, но он всегда не определен. Чтобы убедиться, что я не пропустил что-то простое, я фактически создал функцию, которая возвращает только значение istrue()
Это на самом деле работает нормально.
Это объект / метод def
const database = {
// List of authenticated characters
characters: [],
addCharacter: function(c) {
this.characters.push(c);
},
findById: function(id) {
console.log('Searching for character...');
this.characters.forEach((c) => {
if (c.id === id) {
console.log('Found');
console.log('cid: ' + c.id);
console.log('id: ' + id);
return true; // Never actually returns
}
});
},
istrue: function() {
return true;
}
};
и где это называется
const find = database.findById(characterIdToFind);
console.log(typeof find); // always undefined
console.log(find); // always undefined
Я ожидаю, что будет какое-то возвращаемое значение хотя бы в одной из перестановок этой функции, которую я пробовал. В возвращаемом значении функции никогда не происходит никаких изменений, просто undefined
.