我在Javascript脚本中创建一个获取SQL响应的脚本,然后对其进行处理。基本上,我想检查result[1]
中是否存在用户名值。当它检查时,它会出错并说它不存在。如果它不存在,我希望它返回false,而不是停止程序。
以下是代码:
if (result[1].username != undefined) {
return true;
} else {
return false;
}
我尝试使用typeof(result1) == undefined
,但它给了我同样的错误。
答案 0 :(得分:0)
您可以使用in operator。例如:
let trueObj = { username: 'Foo' };
let falseObj = { };
if ('username' in trueObj) {
console.log('username found in trueObj');
} else {
console.log('username not found in trueObj')
}
if ('username' in falseObj) {
console.log('username found in falseObj');
} else {
console.log('username not found in falseObj')
}
答案 1 :(得分:0)
首先,您必须确保结果存在,否则您将索引到undefined
,这会导致您的应用程序崩溃。
其次,您可以通过以下方式使检查更简洁:
return (result[1] && result[1].username)
如果不存在,将返回falsey值,如果是,则返回false。
如果您需要显式true
作为函数返回的内容,您可以强制它:
return (result[1] && (result[1].username && true))
我会确保为了可读性而重构,但这就是要点。
答案 2 :(得分:-2)
首先请检查结果本身是否存在并制作相应的& 运算符,我认为这肯定会有所帮助
if (result && result[1] && result[1].username) {
return true;
} else {
return false;
}
但是如果你不想让你的代码变得复杂,那么你可以试试lodash库。 https://lodash.com/