suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie erhält ein Js-Objekt den Schlüsselwert durch den Wertwert?

Im Allgemeinen kann der Wert über obj.key abgerufen werden, aber was soll ich tun, wenn ich das Gegenteil tun möchte?

曾经蜡笔没有小新曾经蜡笔没有小新2752 Tage vor964

Antworte allen(6)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-06-30 10:00:56

    keyvalue的映射是单向的,并且value并不具有唯一性。
    所以由key拿到value是没有问题的,但是反之则不行。

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-30 10:00:56

    for...in循环对象判断获取?

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-30 10:00:56

    我有个笨方法

    遍历对象,判断当前对象的 value 是否等于要查的值,如果匹配到输出key

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-06-30 10:00:56

    输出 value 并不是唯一的,通过 value 拿到可以不行 。

    Antwort
    0
  • 三叔

    三叔2017-06-30 10:00:56

    参考一下,如果用 lodash 可以直接用 _.findKey

    var data = {
      a: 1,
      b: 'string',
      c: {},
      d: {a: 98, b: 'str'}
    }
    
    function findKey (value, compare = (a, b) => a === b) {
      return Object.keys(data).find(k => compare(data[k], value))
    }
    
    var val = data.b
    findKey(val) // b
    
    // 自定义比较函数,比如结合 lodash 可以
    findKey({a: 98, b: 'str'}, _.isEqual) // d

    Antwort
    0
  • 怪我咯

    怪我咯2017-06-30 10:00:56

    能循环拿吗?$.each这样拿出来

    Antwort
    0
  • StornierenAntwort