JS代碼如何獲取map的key

JS獲取map的key

Object.keys(map)
//獲取回來集合大傢可以試一下

JS map根據value獲取key

前端通過對象保存字典值用於列表字段翻譯或者加載下拉框都是很常見的操作,有時也會需要根據字典值的value獲取對應的key,搜瞭下相關的文章比較少,在此記錄下。

測試數據

paramsMap: {
  orderType: {
    '0': '咨詢',
    '1': '投訴',
    '2': '舉報',
    '3': '建議',
    '4': '求助',
    '5': '表揚',
  },
  subjectType: {
    'LB': '勞保',
    'XW': '消委',
    'GA': '公安',
    'GT': '國土',
    'CG': '城管',
    'GJJ': '公積金',
    'ZH': '綜合',
  },
},

假設頁面用到兩個類型的字典值,我們使用paramsMap對象保存。(正常使用可以調用接口加載)

根據key獲取value

getParamValue(paramType, code) {
  if (!Object.prototype.hasOwnProperty.call(this.paramsMap, paramType)) {
    return '參數類型錯誤';
  }
  return this.paramsMap[paramType][code];
},

調用時指定參數類型

this.getParamValue('orderType', '1');

根據value獲取key

getParamCode(paramType, value, compare = (a, b) => a === b) {
  if (!Object.prototype.hasOwnProperty.call(this.paramsMap, paramType)) {
    return '參數類型錯誤';
  }
  return Object.keys(this.paramsMap[paramType]).find(k => compare(this.paramsMap[paramType][k], value))
}
this.getParamCode('subjectType', '公安');

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: