在 JavaScript 中检查对象中是否存在键
在本教程中,我们将学习如何使用多种方法来检查 JavaScript 中是否存在键。
在 JavaScript 中使用元素直接访问方法检查对象键是否存在
如果一个键存在,它不应该返回 undefined
。为了检查它是否返回 undefined
,我们对键进行直接访问,可以用两种样式,一种是对象样式,一种是括号访问样式。
在下面的例子中,我们将展示如何使用括号样式直接访问键来检查键是否存在。
let myObject = {'mykey1': 'My Value 1', 'mykey2': 'My Value 2'};
function isKeyExists(obj, key) {
if (obj[key] == undefined) {
return false;
} else {
return true;
}
}
let result0 = isKeyExists(myObject, 'mykey0')
console.log('Check for the non-existing key, is key exists > ' + result0)
let result1 = isKeyExists(myObject, 'mykey1')
console.log('Check for the existing key, is key exists > ' + result1)
输出:
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
另一种通过直接访问来检查键的样式是使用对象样式。在下面的例子中,我们可以看到如何在 JavaScript 中检查该键的存在。
let myObject = {mykey1: 'My Value 1', mykey2: 'My Value 2'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists ? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists ? ' + result1)
输出:
Is myKey0 exists ? false
Is myKey1 exists ? true
使用直接访问键检查 undefined
的一个缺点是,键的值可能等于 undefined
。让我们看下面的例子来说明该方法的问题。
let myObject = {mykey0: undefined, mykey1: 'My Value 1'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists? ' + result1)
输出:
Is myKey0 exists? false
Is myKey1 exists? true
上述案例的解决方案是,当你想用未定义的值初始化一个属性时,千万不要给它分配 undefined
,而是用 null
来初始化它。
如果我们坚持使用 undefined
值来初始化键,我们应该使用 in
操作符,hasOwnProperty
方法,或者 underscore
库 _.has
方法。
使用 in
运算符检查 JavaScript 中是否存在对象键
如果在目标对象中没有找到键,则简单地使用 in
操作符返回 false
,如果找到则返回 true
。
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return key in obj;
}
console.log(
'Does language key exists? ' + isKeyExists(myObject, 'language'))
console.log(
'Does nationality key exists? ' + isKeyExists(myObject, 'nationality'))
输出:
Does language key exists? true
Does nationality key exists? false
使用 hasOwnProperty
方法检查对象键是否存在于 JavaScript 中
另一种检查对象是否包含特定属性键的方法是使用 hasOwnProperty
方法。在下面的例子中,我们将展示如何使用 hasOwnProperty
方法。
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return obj.hasOwnProperty(key);
}
console.log(
'Does the object have language key? ' +
isKeyExists(myObject, 'language'))
console.log(
'Does the object have nationality key? ' +
isKeyExists(myObject, 'nationality'))
输出:
Does the object have language key? true
Does the object have nationality key? false
使用 underscore
库来检查对象键是否存在于 JavaScript 中
如果我们已经使用了任何一个 underscore 库方法,我们可以使用 _.has()
方法,因为如果该对象有提供的键,它将返回 true
,如果没有,则返回 false
。
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
console.log(
'Check using underscore library if the object has language key? ' +
_.has(myObject, 'language'))
console.log(
'Check using underscore library if the object has nationality key? ' +
_.has(myObject, 'nationality'))
输出:
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
我们可以从这里导入库。
相关文章
Pandas 通过 Groupby 应用变换
发布时间:2024/04/23 浏览次数:189 分类:Python
-
本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。
使用 Python 将 Pandas DataFrame 保存为 HTML
发布时间:2024/04/21 浏览次数:106 分类:Python
-
本教程演示如何将 Pandas DataFrame 转换为 Python 中的 HTML 表格。
使用 Pandas DataFrame 创建饼图
发布时间:2024/04/21 浏览次数:219 分类:Python
-
在本教程中,我们将介绍如何使用 python pandas 库使用 DataFrame 创建饼图。饼图使用 Pandas 的 plot() 函数绘制图表。plot() 函数中使用的属性是 kind。
使用 Mysqldump 导出 MySQL 数据库
发布时间:2024/03/26 浏览次数:109 分类:MySQL
-
我们将学习如何使用 mysqldump 命令行实用程序导出 MySQL 数据库。我们还将学习如何从特定数据库中导出表。
使用 phpMyAdmin 删除 MySQL 数据库中的所有行
发布时间:2024/03/25 浏览次数:70 分类:MySQL
-
在本指南中,我们将了解使用 phpMyAdmin 从 MySQL 数据库中删除所有行的最佳方法。
使用 Mysqli_real_escape_string 处理表单数据
发布时间:2024/03/25 浏览次数:81 分类:MySQL
-
本文教你如何使用 mysqli_real_escape_string 处理表单数据。我们将设置一个本地服务器,创建数据库和一个表。之后,你将学习如何在使用 mysqli_real_escape_string 时防止错误。
使用 Mysqldump Gzip 为 MySQL 数据库创建压缩文件
发布时间:2024/03/25 浏览次数:215 分类:MySQL
-
本教程介绍如何使用 mysqldump gzip 和 crontab 为 MySQL 数据库创建压缩备份文件。
使用 Mac 终端打开 MySQL
发布时间:2024/03/25 浏览次数:272 分类:MySQL
-
本文将教你如何使用 Mac 终端打开 MySQL。我们将向你展示如何在 macOS Catalina 及更高版本上执行此操作。此外,macOS Mojave 及更早版本。