[英]Checking if a key exists in a JS object
I have the following JavaScript object:我有以下 JavaScript object:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
Is there a way to check if a key exists in the array, similar to this?有没有办法检查数组中是否存在一个键,类似于这个?
testArray = jQuery.inArray("key1", obj);
does not work.不起作用。
Do I have to iterate through the obj like this?我必须像这样遍历 obj 吗?
jQuery.each(obj, function(key,val)){}
Use the in
operator :使用
in
运算符:
testArray = 'key1' in obj;
Sidenote: What you got there, is actually no jQuery object, but just a plain JavaScript Object.旁注:你得到的实际上不是 jQuery 对象,而是一个普通的 JavaScript 对象。
That's not a jQuery object, it's just an object.那不是一个 jQuery 对象,它只是一个对象。
You can use the hasOwnProperty method to check for a key:您可以使用 hasOwnProperty 方法来检查密钥:
if (obj.hasOwnProperty("key1")) {
...
}
var obj = {
"key1" : "k1",
"key2" : "k2",
"key3" : "k3"
};
if ("key1" in obj)
console.log("has key1 in obj");
========================================================================= ================================================== ========================
To access a child key of another key访问另一个键的子键
var obj = {
"key1": "k1",
"key2": "k2",
"key3": "k3",
"key4": {
"keyF": "kf"
}
};
if ("keyF" in obj.key4)
console.log("has keyF in obj");
Above answers are good.上面的答案很好。 But this is good too and useful.
但这也很好,很有用。
!obj['your_key'] // if 'your_key' not in obj the result --> true
It's good for short style of code special in if statements:它适用于 if 语句中的短代码风格:
if (!obj['your_key']){
// if 'your_key' not exist in obj
console.log('key not in obj');
} else {
// if 'your_key' exist in obj
console.log('key exist in obj');
}
Note: If your key be equal to null or "" your "if" statement will be wrong.注意:如果您的键等于 null 或 "",您的 "if" 语句将是错误的。
obj = {'a': '', 'b': null, 'd': 'value'}
!obj['a'] // result ---> true
!obj['b'] // result ---> true
!obj['c'] // result ---> true
!obj['d'] // result ---> false
So, best way for checking if a key exists in a obj is: 'a' in obj
因此,检查 obj 中是否存在键的最佳方法是:
'a' in obj
map.has(key)
is the latest ECMAScript 2015 way of checking the existance of a key in a map. map.has(key)
是ECMAScript 2015最新的检查映射中键是否存在的方法。 Refer to this for complete details.有关完整的详细信息, 请参阅此内容。
You can try this:你可以试试这个:
const data = {
name : "Test",
value: 12
}
if("name" in data){
//Found
}
else {
//Not found
}
the simplest way is最简单的方法是
const obj = { a: 'value of a', b: 'value of b', c: 'value of c' }; if(obj.a){ console.log(obj.a); }else{ console.log('obj.a does not exist'); }
use the hasOwnProperty()
,使用
hasOwnProperty()
,
if (!obj.hasOwnProperty(key)) {
}
For Example:例如:
const object1 = {
one : 'value of one',
two : 'value of two',
three : 'value of three',
};
console.log(object1.hasOwnProperty('one'));
// expected output: true
console.log(object1.hasOwnProperty('value of one'));
// expected output: false
console.log(object1.hasOwnProperty('four'));
// expected output: false
This works for me like a charm.这对我来说就像一个魅力。 I'm inside a
foreach
function this didn't work obj.hasOwnProperty("key1")
also this "key1" in obj
我在一个
foreach
function 里面这不起作用obj.hasOwnProperty("key1")
还有这个"key1" in obj
let $schedule = {lesson:'asd',age:'sad'}
$schedules.forEach(function(e) {
if (e['lesson']) {
$title = e.lesson.lesson_name;
} else {
$title = 'No lesson Attached';
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.