NodeJS에서 JSON이 비어 있는지 확인하려면 어떻게 해야 합니까?
요청에 쿼리가 있는지 확인하고 그에 따라 다른 작업을 수행하는 기능이 있습니다.저는 지금if(query)
다른 걸 해 봐단, 쿼리 데이터가 없는 경우, 저는 최종적으로는{}
JSON 오브젝트그렇기 때문에 교환이 필요합니다.if(query)
와 함께if(query.isEmpty())
뭐 그런 거라도요NodeJS에서 이 작업을 수행할 수 있는 방법을 설명해 주실 수 있습니까?V8 JSON 오브젝트에는 이런 기능이 있습니까?
다음 기능 중 하나를 사용할 수 있습니다.
// This should work in node.js and other ES5 compliant implementations.
function isEmptyObject(obj) {
return !Object.keys(obj).length;
}
// This should work both there and elsewhere.
function isEmptyObject(obj) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
return false;
}
}
return true;
}
사용 예:
if (isEmptyObject(query)) {
// There are no queries.
} else {
// There is at least one query,
// or at least the query object is not empty.
}
다음을 사용할 수 있습니다.
var isEmpty = function(obj) {
return Object.keys(obj).length === 0;
}
또는 다음과 같습니다.
function isEmpty(obj) {
return !Object.keys(obj).length > 0;
}
다음 항목도 사용할 수 있습니다.
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
언더스코어 또는 jQuery를 사용하는 경우,isEmpty
또는isEmptyObject
콜을 클릭합니다.
Object.keys(myObj).length === 0;
오브젝트가 비어 있는지 확인만 하면 되므로 네이티브 메서드 Object.keys(myObj)를 직접 호출하는 것이 좋습니다.length: 내부적으로 for와 반복하여 키 배열을 반환합니다.루프를 이루다~하듯이Object.hasOwnProperty
에서는 개체 자체에 존재하는 속성에 따라 부울 결과가 반환됩니다.시간 복잡도 O(N2)가 됩니다.
한편, 그 자체에 2개 이상의 실장이 있는 UDF를 호출하면 작은 오브젝트에서는 정상적으로 동작하지만 이벤트루프에서 대기하고 있는 것이 없는 한 오브젝트사이즈가 클 경우 전체적인 퍼로맨스에 중대한 영향을 미치는 코드를 차단합니다.
와 호환성이 있는 경우Object.keys
노드에는 호환성이 있기 때문에 반드시 그것을 사용해야 합니다.
단, 호환성이 없고 어떤 이유로든 루프 기능을 사용할 수 없는 경우에는 저처럼 다음과 같은 솔루션을 사용했습니다.
JSON.stringify(obj) === '{}'
이 솔루션은 필요한 경우에만 '최후의 수단'으로 간주하십시오.
코멘트에서는, 「이 솔루션이 이상적이지 않은 방법은 많이 있습니다」를 참조해 주세요.
최후의 수단을 썼는데 완벽하게 작동했어요
솔루션:
let isEmpty = (val) => {
let typeOfVal = typeof val;
switch(typeOfVal){
case 'object':
return (val.length == 0) || !Object.keys(val).length;
break;
case 'string':
let str = val.trim();
return str == '' || str == undefined;
break;
case 'number':
return val == '';
break;
default:
return val == '' || val == undefined;
}
};
console.log(isEmpty([1,2,4,5])); // false
console.log(isEmpty({id: 1, name: "Trung",age: 29})); // false
console.log(isEmpty('TrunvNV')); // false
console.log(isEmpty(8)); // false
console.log(isEmpty('')); // true
console.log(isEmpty(' ')); // true
console.log(isEmpty([])); // true
console.log(isEmpty({})); // true
const isEmpty = (value) => (
value === undefined ||
value === null ||
(typeof value === 'object' && Object.keys(value).length === 0) ||
(typeof value === 'string' && value.trim().length === 0)
)
module.exports = isEmpty;
언급URL : https://stackoverflow.com/questions/11480769/how-can-i-check-if-a-json-is-empty-in-nodejs
'sourcecode' 카테고리의 다른 글
WordPress에서 XML-RPC가 활성화되었는지 확인하는 방법 (0) | 2023.02.27 |
---|---|
사용자 정보를 CSV로 내보내기 - 추가 컬럼 (0) | 2023.02.27 |
jQuery 내의 WordPress 템플릿 디렉토리에 대한 경로? (0) | 2023.02.27 |
Yaml의 목록과 Spring Boot의 객체 목록 매핑 (0) | 2023.02.27 |
봄의 @Configuration과 @Component의 차이점은 무엇입니까? (0) | 2023.02.27 |