Stefan B.: JavaScript: key "find" in leerem Array existiert

Beitrag lesen

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