Check if array is empty or null

后端 未结 4 581
灰色年华
灰色年华 2020-12-22 23:13

I would like to know how to check if an array is empty or null in jQuery. I tried array.length === 0 but it didn\'t work. It did not throw any error either.

4条回答
  •  無奈伤痛
    2020-12-22 23:57

    As long as your selector is actually working, I see nothing wrong with your code that checks the length of the array. That should do what you want. There are a lot of ways to clean up your code to be simpler and more readable. Here's a cleaned up version with notes about what I cleaned up.

    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
    }
    

    Some notes on what you were doing and what I changed.

    1. $(this) is always a valid jQuery object so there's no reason to ever check if ($(this)). It may not have any DOM objects inside it, but you can check that with $(this).length if you need to, but that is not necessary here because the .each() loop wouldn't run if there were no items so $(this) inside your .each() loop will always be something.
    2. It's inefficient to use $(this) multiple times in the same function. Much better to get it once into a local variable and then use it from that local variable.
    3. It's recommended to initialize arrays with [] rather than new Array().
    4. if (value) when value is expected to be a string will both protect from value == null, value == undefined and value == "" so you don't have to do if (value && (value != "")). You can just do: if (value) to check for all three empty conditions.
    5. if (album_text.length === 0) will tell you if the array is empty as long as it is a valid, initialized array (which it is here).

    What are you trying to do with this selector $("input[name='album_text[]']")?

提交回复
热议问题