programing

어레이가 비어 있는지 null인지 확인합니다.

yellowcard 2023. 8. 23. 21:43
반응형

어레이가 비어 있는지 null인지 확인합니다.

jQuery에서 배열이 비어 있는지 null인지 확인하는 방법을 알고 싶습니다.나는 노력했다.array.length === 0하지만 그것은 작동하지 않았다.그것은 어떠한 오류도 던지지 않았습니다.

코드는 다음과 같습니다.

var album_text = new Array();

$("input[name='album_text[]']").each(function(){
  if( $(this).val() &&  $(this).val() != '') {
    album_text.push($(this).val());
  }
});
if (album_text.length === 0) {
  $('#error_message').html("Error");
}

else {
  // send data
}

실렉터가 실제로 작동하는 한 배열 길이를 확인하는 코드에는 아무런 문제가 없습니다.당신이 원하는 대로 해야 합니다.코드를 더 단순하고 읽기 쉽게 정리하는 방법은 여러 가지가 있습니다.정리된 버전은 제가 정리한 내용에 대한 메모와 함께 있습니다.

var album_text = [];

$("input[name='album_text[]']").each(function() {
    var value = $(this).val();
    if (value) {
        album_text.push(value);
    }
});
if (album_text.length === 0) {
    $('#error_message').html("Error");
}

else {
  //send data
}

당신이 무엇을 하고 있었고 내가 무엇을 바꿨는지에 대한 메모.

  1. $(this)항상 유효한 jQuery 개체이므로 확인할 이유가 없습니다.if ($(this))내부에 DOM 개체가 없을 수 있지만 다음을 사용하여 확인할 수 있습니다.$(this).length만약 당신이 필요하다면, 하지만 그것은 여기서 필요하지 않습니다 왜냐하면..each()항목이 없으면 루프가 실행되지 않습니다.$(this)마음속에.each()루프는 항상 뭔가가 될 것입니다.
  2. 동일한 기능에서 $(이)를 여러 번 사용하는 것은 비효율적입니다.일단 로컬 변수로 가져온 다음 해당 로컬 변수에서 사용하는 것이 훨씬 좋습니다.
  3. 다음을 사용하여 어레이를 초기화하는 것이 좋습니다.[]보다는new Array().
  4. if (value)값이 문자열이 될 것으로 예상될 때 둘 다 보호됩니다.value == null,value == undefined그리고.value == ""그래서 당신은 할 필요가 없습니다.if (value && (value != ""))다음을 수행할 수 있습니다.if (value)세 가지 빈 조건을 모두 확인합니다.
  5. if (album_text.length === 0)는 유효하고 초기화된 배열(여기에 있음)인 경우 배열이 비어 있는지 여부를 알려줍니다.

이 선택기로 무엇을 하려고 합니까?$("input[name='album_text[]']")?

사용자 JQuery가 EmptyObject이며 배열에 요소가 포함되어 있는지 여부를 확인합니다.

var testArray=[1,2,3,4,5];
var testArray1=[];
console.log(jQuery.isEmptyObject(testArray)); //false
console.log(jQuery.isEmptyObject(testArray1)); //true

@jesenko가 언급했듯이 배열이 비어 있는지 확인하기 위해 jquery의 $.is EmptyObject를 사용하는 것은 위험하다고 생각합니다.저는 방금 그 문제를 만났습니다.

is EmptyObject 문서에서 다음을 언급합니다.

인수는 항상 일반 JavaScript 개체여야 합니다.

당신이 결정할 수 있는 것은$.isPlainObject의 반환$.isPlainObject([])거짓입니다.

다음을 확인해야 합니다.''(빈 문자열)을 입력해야 합니다.배열에 빈 문자열 요소가 있습니다.그럼 당신의album_text.length === 0잘 될 겁니다.

/*
  Basic Checking with undefined array for Jquery Array
*/
if (typeof myArray !== 'undefined' && myArray.length > 0) {
    console.log('myArray is not empty.');
}else{
    console.log('myArray is empty.');
}

언급URL : https://stackoverflow.com/questions/7198197/check-if-array-is-empty-or-null

반응형