Als ob diese Frage nicht schon oft genug gestellt worden wäre...
Hier ist eine, nur um Sie neugierig zu machen...
Wenn Sie sich sicher sind, dass Ihr Objekt nur Zeichenkettenwerte haben wird, können Sie sich wirklich anstrengen, diese Implementierung herbeizuzaubern:
var o = { a: '_A', b: '_B', c: '_C' }
, json = JSON.stringify(o)
, split = json.split('')
, nosj = split.reverse()
, o2 = nosj.join('');
var reversed = o2.replace(/[{}]+/g, function ($1) { return ({ '{':'}', '}':'{' })[$1]; })
, object = JSON.parse(reversed)
, value = '_B'
, eulav = value.split('').reverse().join('');
console.log('>>', object[eulav]);
Vielleicht gibt es hier etwas Nützliches, worauf man aufbauen kann...
Ich hoffe, das amüsiert Sie.
0 Stimmen
Es gibt keine Standardfunktion für diese Aufgabe. Wenn die Zuordnung wirklich bidirektional ist, ist es trivial, eine "umgekehrte" Zuordnung zu konstruieren und diese zu indizieren. Andernfalls eine einfache Eigenschaft-Iterator (mit einem hasOwnProperty gaurd, vielleicht) und eine frühe Rückgabe versteckt innerhalb einer Funktion tut gerade schön...
0 Stimmen
Wie könnte das funktionieren, wenn ein Objekt von mehr als einem Schlüssel referenziert wird?
var o = []; var map = {first: o, second: o}
. Was würdefind_key(o)
zurückkehren?5 Stimmen
Spielt keine Rolle ;) Ich wollte es nur für ein Array mit eindeutigen Schlüssel-Wert-Paaren verwenden.
0 Stimmen
Mögliches Duplikat von beste Weg, um den Schlüssel eines Schlüssel/Wert-Javascript-Objekt zu erhalten
1 Stimmen
Ich habe eine Version ohne Iteration erstellt stackoverflow.com/a/36705765/696535 . Es wäre interessant, alle vorgeschlagenen Lösungen in jsfiddle zu testen