我正在尝试从堆栈溢出中获得各种答案,以编写一条if语句,以检查是否填充了JSON数组或为空。但是,console.log始终返回未定义。我正在使用node.js和webstorm作为IDE。我可以得到一些帮助来解决这个问题吗?
xdebug.remote_autostart=on
}
答案 0 :(得分:0)
问题是您正在使用带有con.query的严格相等运算符,如果未找到任何内容,它将返回空数组([])
。
由于您使用严格的比较,([]) !== 0
会解析为TRUE,这会导致您遇到问题。
解决方案
您可以将语句更改为if (result)
,或者将其更改为更清晰的版本if (result.length > 0 )
,以完成您要执行的操作。
您可以从本文中了解有关JS如何评估表达式的更多信息 Truthy and falsy values in javascript
答案 1 :(得分:0)
要检查未定义的内容,并且有内容...
Warning: `flexWrap: `wrap`` is not supported with the `VirtualizedList` components.Consider using `numColumns` with `FlatList` instead.
编辑:显然,您不应该使用getOwnPropertyNames,因为某些安全框架会阻止它。.改用Object.keys。
答案 2 :(得分:-1)
使用Object.keys
function selectData(){
var sql = "SELECT * FROM cust where LastName = '" +registerArray[0]+"'";
con.query(sql, function (err, result) {
console.log(JSON.stringify(result));
if (Object.keys(result).length !== 0 ){