588 Stimmen

Wie kann man prüfen, ob ein Array leer ist oder existiert?

Wenn die Seite zum ersten Mal geladen wird, muss ich prüfen, ob sich ein Bild in image_array und laden Sie das letzte Bild.

Andernfalls deaktiviere ich die Vorschau-Schaltflächen, weise den Benutzer darauf hin, dass er auf die Schaltfläche "Neues Bild" klicken soll, und erstelle ein leeres Feld, in das die Bilder eingefügt werden;

Das Problem ist, dass image_array im else brennt alle Zeit. Wenn ein Array vorhanden ist - es überschreibt es einfach, aber Alarm funktioniert nicht.

if(image_array.length > 0)
    $('#images').append('<img src="'+image_array[image_array.length-1]+'" class="images" id="1" />');
else{
    $('#prev_image').attr('disabled', 'true');
    $('#next_image').attr('disabled', 'true');
    alert('Please get new image');
    var image_array = [];
}

UPDATE Bevor ich html lade, habe ich etwas wie dieses:

<?php if(count($images) != 0): ?>
<script type="text/javascript">
    <?php echo "image_array = ".json_encode($images);?>
</script>
<?php endif; ?>

20voto

Samson Punkte 2751

Sie sollten verwenden:

  if (image_array !== undefined && image_array.length > 0)

11voto

Mike Brant Punkte 70002

Wenn Sie testen möchten, ob die Bild-Array-Variable definiert wurde, können Sie dies wie folgt tun

if(typeof image_array === 'undefined') {
    // it is not defined yet
} else if (image_array.length > 0) {
    // you have a greater than zero length array
}

8voto

Amit Bhagat Punkte 3900

JavaScript

( typeof(myArray) !== 'undefined' && Array.isArray(myArray) && myArray.length > 0 )

Lodash & Underscore

( _.isArray(myArray) && myArray.length > 0 )

6voto

Mayank Raipure Punkte 1723

Sie können jQuery's isEmptyObject() um zu prüfen, ob das Array Elemente enthält oder nicht.

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

Quelle: https://api.jquery.com/jQuery.isEmptyObject/

5voto

User5678015 Punkte 359

Verwendung von undescore ou lodash :

_.isArray(image_array) && !_.isEmpty(image_array)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X