Javascript,如何检查对象是否存在

时间:2017-11-01 18:08:13

标签: javascript node.js

我在Javascript脚本中创建一个获取SQL响应的脚本,然后对其进行处理。基本上,我想检查result[1]中是否存在用户名值。当它检查时,它会出错并说它不存在。如果它不存在,我希望它返回false,而不是停止程序。

以下是代码:

if (result[1].username != undefined) {
    return true;
} else {
    return false;
}

我尝试使用typeof(result1) == undefined,但它给了我同样的错误。

3 个答案:

答案 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/