Mahlzeit,
dies ist mein erster Thread hier seit ... ich weiß nicht, seit wievielen Jahrzehnten (ich war wohl so um die 2000er herum mal relativ aktiv hier; mein alter Account funktioniert aber nicht mehr).
Jetzt hat mich aber doch ein verflixtes JavaScript-Problem dazu gebracht, mich hier nochmal anzumelden. Google hat auch nicht weitergeholfen…
Folgendes:
Ich habe ein leeres Array, und bevor ich ein Element mit einem String als Key einfüge, überprüfe ich, ob es unter diesem Key schon existiert:
var array = [];
if ('bind' in array) ... // false
if ('find' in array) ... // true; WTF?
OK, schaumermal:
array['bind'] // Ausgabe: undefined
array['find'] // Ausgabe: function find() { [native code] }
Aha! Die find()-Funktion ist also schuld!
Komisch: Einfügen eines neuen Elements mit dem Key "find" geht aber, obwohl es schon "existiert":
array['bind'] = 'Bind';
array['find'] = 'Find';
array['bind'] // Ausgabe: Bind
array['find'] // Ausgabe: Find
So, und nun? Wie kann ich die Existenz eines selbst eingefügten Elements anhand des Keys überprüfen, ohne dass Funktionen der Array-Klasse gleichen Namens "dazwischenfunken"?
VG Stefan