在 JavaScript 中檢查物件中是否存在鍵
Moataz Farid
2023年10月12日
JavaScript
JavaScript Object
- 在 JavaScript 中使用元素直接訪問方法檢查物件鍵是否存在
-
使用
in
運算子檢查 JavaScript 中是否存在物件鍵 -
使用
hasOwnProperty
方法檢查物件鍵是否存在於 JavaScript 中 -
使用
underscore
庫來檢查物件鍵是否存在於 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
我們可以從這裡匯入庫。
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe