다음 JavaScript 개체가 있습니다.
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
이와 비슷한 배열에 키가 있는지 확인하는 방법이 있습니까?
testArray = jQuery.inArray("key1", obj);
작동하지 않습니다.
이렇게 obj를 반복해야합니까?
jQuery.each(obj, function(key,val)){}
다음 JavaScript 개체가 있습니다.
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
이와 비슷한 배열에 키가 있는지 확인하는 방법이 있습니까?
testArray = jQuery.inArray("key1", obj);
작동하지 않습니다.
이렇게 obj를 반복해야합니까?
jQuery.each(obj, function(key,val)){}
obj.has("key1")ES6를 사용하는 경우 작동합니다.
obj.hasOwnProperty("key1")대신 말하려고하는 것 같아요 has?
답변:
in?
testArray = !( 'key1' in obj);?
그것은 jQuery 객체가 아니라 객체 일뿐입니다.
hasOwnProperty 메서드를 사용하여 키를 확인할 수 있습니다.
if (obj.hasOwnProperty("key1")) {
...
}
var obj = {
"key1" : "k1",
"key2" : "k2",
"key3" : "k3"
};
if ("key1" in obj)
console.log("has key1 in obj");
================================================ =======================
다른 키의 하위 키에 액세스하려면
var obj = {
"key1": "k1",
"key2": "k2",
"key3": "k3",
"key4": {
"keyF": "kf"
}
};
if ("keyF" in obj.key4)
console.log("has keyF in obj");
if (!("key1" in obj)) { console.log("no key1 in obj"); }
위의 답변은 좋습니다. 그러나 이것도 좋고 유용합니다.
!obj['your_key'] // if 'your_key' not in obj the result --> true
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');
}
참고 : 키가 null 또는 ""이면 "if"문이 잘못된 것입니다.
obj = {'a': '', 'b': null, 'd': 'value'}
!obj['a'] // result ---> true
!obj['b'] // result ---> true
!obj['c'] // result ---> true
!obj['d'] // result ---> false
따라서 obj에 키가 있는지 확인하는 가장 좋은 방법은 다음과 같습니다.'a' in obj
map.has(key)
지도에서 키의 존재를 확인 하는 최신 ECMAScript 2015 방법입니다. 자세한 내용은 이것을 참조 하십시오.
가장 간단한 방법은
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');
}
a빈 문자열, 제로 또는 null 중 하나이지만, 여전히 키에도 불구하고, 'obj.a이 존재하지 않는'반환 a하지 존재한다.