Im Empfangen von JSON-Daten, die durch numerische Indizes aggregiert werden. Wenn Im beispielsweise in meinem Forloop ist, könnte der Index bei 1 beginnen, was bedeutet, dass in meinem Forloop ein Fehler auftreten würde, weil 0 nicht existiert. Wie überprüfe ich, ob im JavaScript-Array ein numerischer Index existiert?Suche nach einem numerischen Index in einem Javascript-Array
Antwort
var a = [1, 2, 3],
index = 2;
if (a[index] !== void 0) { /* void 0 === undefined
* See concern about ``undefined'' below. */
/* index doesn't point to an undefined item. */
}
Oder 'if (index in a)' würde technisch auf Existenz prüfen, obwohl Ihre '! == undefined' Prüfung wird wahrscheinlich ausreichen. –
typeof a [index]! == 'undefined' sollte sicherer sein – Aubin
@Aubin Warum? Wenn "a" nicht definiert ist, wird es beim Versuch, auf "[index]" zuzugreifen, genauso fehlerhaft sein. – andlrc
Sie sollten for(key in data)
var data = [];
data[1] = 'a';
data[3] = 'b';
for(var index in data) {
console.log(index+":"+data[index]);
}
//Output:
// 1-a
// 3-b
verwenden können, die in Daten Schleife über jeden Schlüsselpunkt, wenn die Indizes nicht zusammenhängend sind.
Wenn Sie wirklich, was beschreiben eher ein Object
ist als ein Array
, ist aber Array wie in der Tatsache, dass es Eigenschaften hat, die von uint32_t sind, aber nicht wesentlich length
Eigenschaft vorhanden. Dann könnten Sie es in ein echtes Array wie folgt umwandeln. Browser-Kompatibilität weise erfordert diese Unterstützung von hasOwnProperty
Javascript
function toArray(arrayLike) {
var array = [],
i;
for (i in arrayLike) {
if (Object.prototype.hasOwnProperty.call(arrayLike, i) && i >= 0 && i <= 4294967295 && parseInt(i) === +i) {
array[i] = arrayLike[i];
}
}
return array;
}
var object = {
1: "a",
30: "b",
50: "c",
},
array = toArray(object);
console.log(array);
Ausgabe
[1: "a", 30: "b", 50: "c"
] `
Auf jsfiddle
Ok, jetzt haben Sie eine dünn besiedelte Matrix und wollen Verwenden Sie eine for
Schleife, um etwas zu tun.
Javascript
var array = [],
length,
i;
array[1] = "a";
array[30] = "b";
array[50] = "c";
length = array.length;
for (i = 0; i < length; i += 1) {
if (Object.prototype.hasOwnProperty.call(array, i)) {
console.log(i, array[i]);
}
}
Ouput
1 "a"
30 "b"
50 "c"
Auf jsfiddle
Alternativ können Sie Array.prototype.forEach
verwenden, wenn Ihr Browser es, oder die verfügbare Shim auf der MDN Seite als gegeben unterstützt, dass ich verbunden oder es5_shim
Javascript
var array = [];
array[1] = "a";
array[30] = "b";
array[50] = "c";
array.forEach(function (element, index) {
console.log(index, element);
});
Ausgabe
1 "a"
30 "b"
50 "c"
Auf jsfiddle
Auto, um die Down-Abstimmung zu erklären? – Xotic750
- 1. Suche nach einem fehlenden Index
- 2. Suche nach einem String ab gegebenem Index
- 3. Suche nach einem Array-Elemente an einem gegebenen Index
- 4. Auf der Suche nach einem einfachen C# numerischen Bearbeitungssteuerelement
- 5. Suche nach genauen Begriff in einem Algolia-Index
- 6. Suche nach dem Index eines Strings in einem Tupel
- 7. Suche nach numerischen Algorithmus Realisation
- 8. Suche nach einem Wort
- 9. Suche nach einem Datum aus einem SUM
- 10. Suche nach einem Objekt-Index in NSArray mit einem Inline-Block
- 11. Suche nach einem fehlenden .bash_profile
- 12. Suche nach Strings in einem Textfeld, die in einem DIV
- 13. Schnellste Möglichkeit zur Suche nach einem nicht numerischen Wert in CSV
- 14. Suche nach Junk-Zeichen in einem String
- 15. Suche nach einem Punkt in html5 Video
- 16. Suche nach fehlenden Werten in einem Array
- 17. Suche nach einem Wort in einer Spalte
- 18. Java - Suche nach Dateien in einem Verzeichnis
- 19. Suche nach einem bekannten Pfad in OrientDB
- 20. Suche nach einem Wort-Präfix in Python
- 21. Suche nach einem Teilstring in Velocity
- 22. Suche nach einem Wert in gesegnetem Hash
- 23. Suche nach einem gegabelten Repo in GitHub
- 24. Suche nach einem Wort in Trie
- 25. Suche nach einem Minimalwert in einer Unterabfrage
- 26. Suche nach in einem getrennten String Spalte
- 27. Suche nach freien Steckplätzen in einem Buchungssystem
- 28. Suche nach Web-Links in einem NSString
- 29. Suche nach bestimmten Wörtern in einem Satz
- 30. MVC. Suche nach mehr als einem Kriterium
wir ein Beispiel dieser json Daten sehen – Musa
Wie könnte ein Index * nicht * in einem Array existiert? Was du meinst ist es ist Wert "undefiniert", richtig? – acdcjunior
Bitte poste ein Beispiel. Beschreibungen von Problemen in Fragen sind oft ohne konkrete Beispiele schwer zu beantworten. – CodeMonkeyKing