배열이 비어 있는지 또는 존재하지 않는지 확인하십시오. JS [중복]
이 질문에는 이미 답변이 있습니다.
배열이 비어 있는지 또는 존재하지 않는지 확인하는 가장 좋은 방법은 무엇입니까?
이 같은?
if(array.length < 1 || array == undefined){
//empty
}
undefined
먼저 확인하고 싶습니다 . 다른 방법으로 배열을 수행하면 배열이 정의되지 않은 경우 오류가 발생합니다.
if (array === undefined || array.length == 0) {
// array empty or does not exist
}
최신 정보
이 답변은 상당한 관심을 끌고 있기 때문에 다른 것보다 내 원래의 답변이 질문에서 평가되는 조건의 순서가 잘못되었음을 지적하고 싶습니다. 이런 의미에서 null
값, length
속성을 가진 다른 유형의 객체 등과 같은 여러 시나리오를 다루지 못합니다 . 또한 관용적 인 JavaScript는 아닙니다.
바보 같은 접근 방식
주석에서 영감을 얻은 다음은 현재 배열이 비어 있는지 또는 존재하지 않는지를 확인하는 바보 같은 방법으로 간주됩니다. 또한 변수가 배열을 참조하지 않고 length
속성 이있는 다른 유형의 객체를 참조 할 수도 있습니다 .
if (!Array.isArray(array) || !array.length) {
// array does not exist, is not an array, or is empty
// ⇒ do not attempt to process array
}
그것을 분해하려면 :
Array.isArray()
의심 할 여지없이 인수가 배열인지 확인합니다. 값 아웃이 잡초처럼null
,undefined
및 배열이 아닌 다른 것.
이로 인해 객체 및 DOM 객체와 같은 배열과 유사한 객체가 제거 됩니다. 상황에 따라, 이것은 당신이 따르는 행동이 아닐 수도 있습니다.arguments
NodeList
array.length
조건 검사 가변인지length
특성은 평가 truthy의 값. 이미 우리는 참으로 배열을 다루고 있음을 설립 이전 조건이 더 엄격한 비교가 좋아하기 때문에array.length != 0
나array.length !== 0
여기 필요하지 않습니다.
실용적인 접근법
많은 경우에, 위의 내용은 과잉으로 보일 수 있습니다. 어쩌면 컴파일 타임에 대부분의 유형 검사를 수행하는 TypeScript와 같은 고급 언어를 사용하고 있거나 객체가 실제로 배열인지 아니면 배열과 같은지 신경 쓰지 않을 것입니다.
그런 경우에는 다음과 같은 관용적 인 JavaScript를 사용하는 경향이 있습니다.
if (!array || !array.length) {
// array or array.length are falsy
// ⇒ do not attempt to process array
}
또는 더 자주 그 반대입니다.
if (array && array.length) {
// array and array.length are truthy
// ⇒ probably OK to process array
}
참고 URL : https://stackoverflow.com/questions/24403732/check-if-array-is-empty-or-does-not-exist-js
'Programing' 카테고리의 다른 글
TRUE 및 FALSE 매크로의 이상한 정의 (0) | 2020.03.16 |
---|---|
Windows에서 고양이를 대체합니까? (0) | 2020.03.16 |
angular.js가 문서를 컴파일 / 보간하기 전에 이중 중괄호 표기법이 일시적으로 표시되지 않도록 방지 (0) | 2020.03.16 |
자바 주문지도 (0) | 2020.03.16 |
한 목록에서 발생하는 모든 요소를 다른 목록에서 제거 (0) | 2020.03.16 |