Θα λειτουργήσει αυτό για να ελέγξετε αν μια τιμή στη θέση "index" υπάρχει ή όχι, ή υπάρχει κάποιος καλύτερος τρόπος:
if(arrayName[index]==""){
// do stuff
}
Όλοι οι πίνακες στη JavaScript περιέχουν στοιχεία array.length
, ξεκινώντας από array[0]
μέχρι array[array.length - 1]
. Εξ ορισμού, ένα στοιχείο του πίνακα με δείκτη i
λέγεται ότι είναι μέρος του πίνακα αν i
είναι μεταξύ 0
και array.length - 1
συμπεριλαμβανομένου.
Δηλαδή, οι πίνακες της JavaScript είναι γραμμικοί, ξεκινώντας από το μηδέν και φτάνοντας σε ένα μέγιστο, και οι πίνακες δεν διαθέτουν μηχανισμό για τον αποκλεισμό ορισμένων τιμών ή περιοχών από τον πίνακα. Για να μάθετε αν υπάρχει μια τιμή σε μια δεδομένη θέση δείκτη (όπου ο δείκτης είναι το 0 ή ένας θετικός ακέραιος), κυριολεκτικά απλά χρησιμοποιείτε
if (index < array.length) {
// do stuff
}
Ωστόσο, είναι δυνατό κάποιες τιμές του πίνακα να είναι null, undefined
, NaN
, Infinity
, 0, ή ένα πλήθος διαφορετικών τιμών. Για παράδειγμα, αν προσθέσετε τιμές πίνακα αυξάνοντας την ιδιότητα array.length
, οποιεσδήποτε νέες τιμές θα είναι undefined
.
Για να προσδιορίσετε αν μια δεδομένη τιμή είναι κάτι που έχει νόημα ή έχει οριστεί. Δηλαδή, όχι undefined
, ή null
:
if (typeof array[index] !== 'undefined') {
ή
if (typeof array[index] !== 'undefined' && array[index] !== null) {
Είναι ενδιαφέρον ότι, λόγω των κανόνων σύγκρισης της JavaScript, το τελευταίο μου παράδειγμα μπορεί να βελτιστοποιηθεί σε αυτό:
if (array[index] != null) {
// The == and != operators consider null equal to only null or undefined
}
if(arrayName.length > index && arrayName[index] !== null) {
//arrayName[index] has a value
}