Wie überprüfe ich, ob ein Array-Index in Javascript vorhanden ist oder nicht?
Lesezeit: 4 Minuten
Pradeep
Ich arbeite mit Titanium, mein Code sieht so aus:
var currentData = new Array();
if(currentData[index]!==""||currentData[index]!==null||currentData[index]!=='null')
{
Ti.API.info("is exists " + currentData[index]);
return true;
}
else
{
return false;
}
Ich übergebe einen Index an die currentData Reihe. Ich kann immer noch keinen nicht vorhandenen Index mit dem obigen Code erkennen.
Deine Logik ist falsch. Du brauchst Konjunktionen (&&) zwischen den einzelnen Bedingungen.
– JK
28. Oktober 2012 um 9:59 Uhr
Probieren Sie diese Überprüfungen aus: stackoverflow.com/a/71808205/984471
– Manohar Reddy Poreddy
9. April um 12:48 Uhr
techfoobar
Verwenden typeof arrayName[index] === 'undefined'
dh
if(typeof arrayName[index] === 'undefined') {
// does not exist
}
else {
// does exist
}
+1, schön. Sie können auch verwenden if(arrayName[index] === 'undefined') als Abkürzung
– Sardellenlegende
8. Oktober 2013 um 0:08 Uhr
@AnchovyLegend nein, kannst du nicht! Aber Sie können verwenden if(arrayName[index] === undefined).
– Dennis V
29. November 2013 um 15:01 Uhr
dies schlägt fehl, wenn das Element vorhanden ist, aber sein Wert nicht definiert ist; Verwenden Sie stattdessen diese Antwort -> stackoverflow.com/questions/1098040/…
– Matus
17. Mai 2014 um 21:25 Uhr
Wie @Matus sagte, gibt es hier weitere Erklärungen, die Sie beachten sollten.
– S. Thiongane
8. August 2014 um 8:47 Uhr
für if(arrayName[index] === undefiniert) können Sie eine noch kürzere verwenden, nämlich if(!arrayName[index])
Leider funktioniert dieser nicht in IE 7 und niedriger.
– dunkles Seelenlied
7. Oktober 2014 um 15:21 Uhr
Dies ist meiner Meinung nach die beste Antwort, da IE 7 inzwischen nicht mehr gewartet wird, ist dies kein Problem. Obwohl ich vorschlagen werde, die dreifache Gleichheit zu verwenden if(myArray.indexOf(searchTerm) === -1)
– Mauro Gava
1. September 2016 um 2:49 Uhr
Das OP wollte sehen, ob das gegeben ist Index Nummer existiert. Dies prüft, ob eine gegeben ist Wert existiert.
– jonathan.s
7. März 2019 um 17:53 Uhr
Heutzutage würde ich Ecmascript nutzen und es so verwenden
return myArr?.[index]
@dsi Sie können es jederzeit in der Konsole überprüfen. Jedenfalls sollte es. Die Idee besteht genau darin, Sie in diesem Fall vor Fehlern zu bewahren.
– Saulus
21. Juli 2021 um 13:07 Uhr
let date = string.match(/Datum: (.*)/)?.[1] > SyntaxError: Unerwartetes Token ‘.’
– www.assayag.org
25. April um 20:19 Uhr
Bitte korrigiert mich jemand, wenn ich falsch liege, aber so viel ich weiss Folgendes gilt:
Arrays sind wirklich nur Objekte unter der Haube von JS
Somit haben sie die Prototyp-Methode hasOwnProperty “geerbt von Object
bei meinen Tests, hasOwnProperty kann prüfen, ob an einem Array-Index etwas vorhanden ist.
Also, solange das oben Gesagte zutrifft, können Sie einfach:
Genau das ist die in Betreiber ist für. Verwenden Sie es wie folgt:
if (index in currentData)
{
Ti.API.info(index + " exists: " + currentData[index]);
}
Die akzeptierte Antwort ist falsch, es wird falsch negativ ausgegeben, wenn der Wert at index ist undefined:
const currentData = ['a', undefined], index = 1;
if (index in currentData) {
console.info('exists');
}
// ...vs...
if (typeof currentData[index] !== 'undefined') {
console.info('exists');
} else {
console.info('does not exist'); // incorrect!
}
Schweizer Herr
Ich musste die Antwort von techfoobar in a einpacken try..catch blockieren, etwa so:
try {
if(typeof arrayName[index] == 'undefined') {
// does not exist
}
else {
// does exist
}
}
catch (error){ /* ignore */ }
… so hat es jedenfalls in Chrome funktioniert (ansonsten wurde der Code mit einem Fehler abgebrochen).
Amir
Betrachten Sie das Array a:
var a ={'name1':1, 'name2':2}
Wenn Sie überprüfen möchten, ob ‘name1’ in a existiert, testen Sie es einfach mit in:
if('name1' in a){
console.log('name1 exists in a')
}else
console.log('name1 is not in a')
“var a” ist in Ihrem Fall kein Array-Objekt, sondern ein reguläres Objekt. Sollte var a = sein [ … ]. Ich denke, das ist es, was der Autor brauchte.
– tomazahlin
16. Dezember 2015 um 13:10 Uhr
So überprüfen Sie das Vorhandensein eines Schlüssels in einem Objekt, nicht das Vorhandensein eines Indexes in einem Array.
– Ben Hull
2. Februar 2017 um 0:58 Uhr
Das in Operator scheint auch mit Arrays zu funktionieren. Wie 2 in [5, 6, 7, 8, 9, 10] stimmt, aber 6 in [5, 6, 7, 8, 9, 10] ist falsch. Ändern Sie einfach Ihre Antwort in ein Array, um relevant zu sein.
– Hockendes Kätzchen
19. November 2020 um 22:39 Uhr
13107000cookie-checkWie überprüfe ich, ob ein Array-Index in Javascript vorhanden ist oder nicht?yes
Deine Logik ist falsch. Du brauchst Konjunktionen (
&&
) zwischen den einzelnen Bedingungen.– JK
28. Oktober 2012 um 9:59 Uhr
Probieren Sie diese Überprüfungen aus: stackoverflow.com/a/71808205/984471
– Manohar Reddy Poreddy
9. April um 12:48 Uhr