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; ?>

0voto

Ivan Off Punkte 25

In meinem Fall, array_.length immer 0 zurück, auch wenn sie Werte enthielt. Wahrscheinlich, weil die Indizes nicht standardmäßig sind.

Um zu prüfen, ob Array definiert ist, verwenden wir also typeof _array !== 'undefined' Und dann, um zu überprüfen, ob es jedes Datum enthält ich einfach vergleichen Sie es mit einem leeren Array _array !== []

-1voto

velan Punkte 37

In ts

 isArray(obj: any) 
{
    return Array.isArray(obj)
  }

in html

(photos == undefiniert || !(isArray(photos) && photos.length > 0) )

-4voto

Al_th Punkte 1164

Wenn Sie Ihr image_array erstellen, ist es leer, daher ist Ihre image_array.length 0

Wie in dem unten stehenden Kommentar angegeben, ändere ich meine Antwort auf der Grundlage folgender Angaben Antwort auf die Frage ) :

var image_array = []

innerhalb der else-Klammern ändert nichts an dem zuvor im Code definierten 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