在以下代码中,该函数findById()实际上不返回任何内容。在console.log()如预期的火,打印,但结果是该函数被调用时,变量是不确定的。
我试图改变返回值类型,甚至只是return true;在没有条件的情况下放在最后,但它总是未定义的。为了确保我没有遗漏一些简单的东西,我实际上创建了一个只返回值的函数istrue()。这实际上工作正常。
这是对象/方法定义
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.
HUWWW
牛魔王的故事
相关分类