【问题标题】:Get list of key names based on values - Javascript根据值获取键名列表 - Javascript
【发布时间】:2020-01-22 15:12:35
【问题描述】:

我想根据我检查的值获取键名列表。

这就是我所拥有的。

const data = {
  "DE": "ARUN",
  "HI": "ARUN",
  "PR": "ARUN",
  "TX": "ARUN",
  "MA": "ARUN",
  "MD": "CHARLES,BRANDON,DAVID,ARUN",
  "IA": "ARUN",
  "ME": "ARUN",
  "ID": "ARUN",
  "MI": "ARUN",
  "UT": "ARUN",
  "MN": "ARUN",
  "MO": "ARUN",
  "IL": "ARUN",
  "IN": "ARUN",
  "MS": "ARUN",
  "MT": "ARUN",
  "AK": "ARUN",
  "AL": "ARUN",
  "VA": "ARUN",
  "AR": "ARUN",
  "AS": "ARUN",
  "VI": "ARUN",
  "NC": "ARUN",
  "ND": "ARUN",
  "NE": "ARUN",
  "RI": "ARUN",
  "AZ": "ARUN",
  "NH": "ARUN",
  "NJ": "ARUN",
  "VT": "ARUN",
  "NM": "ARUN",
  "FL": "ARUN",
  "NV": "ARUN",
  "WA": "ARUN",
  "NY": "ARUN",
  "SC": "ARUN",
  "SD": "ARUN",
  "WI": "ARUN",
  "OH": "ARUN",
  "GA": "ARUN",
  "OK": "ARUN",
  "CA": "ARUN",
  "WV": "ARUN",
  "WY": "ARUN",
  "OR": "ARUN",
  "KS": "ARUN",
  "CM": "ARUN",
  "CO": "ARUN",
  "GU": "ARUN",
  "KY": "ARUN",
  "CT": "ARUN",
  "PA": "ARUN",
  "LA": "ARUN",
  "TN": "ARUN",
  "DC": "ARUN"
}

const name = 'BRANDON'

const newMappedData = Object.keys(data).map(key => {
  return {
    [key]: data[key].split(',')
  }
})

const filteredData = newMappedData.filter(item => Object.values(item).includes(name))


console.log(filteredData)

在上面的例子中,当我们输入'BRANDON'时,结果应该只有['MD'],如果是'ARUN',它应该给我['DE', 'HI', 'PR',...]

请指教。

【问题讨论】:

    标签: javascript arrays javascript-objects


    【解决方案1】:

    您可以通过检查拆分的字符串来过滤键。

    const
        getKeys = value => Object.keys(data).filter(k => data[k].split(',').includes(value)),
        data = { DE: "ARUN", HI: "ARUN", PR: "ARUN", TX: "ARUN", MA: "ARUN", MD: "CHARLES,BRANDON,DAVID,ARUN", IA: "ARUN", ME: "ARUN", ID: "ARUN", MI: "ARUN", UT: "ARUN", MN: "ARUN", MO: "ARUN", IL: "ARUN", IN: "ARUN", MS: "ARUN", MT: "ARUN", AK: "ARUN", AL: "ARUN", VA: "ARUN", AR: "ARUN", AS: "ARUN", VI: "ARUN", NC: "ARUN", ND: "ARUN", NE: "ARUN", RI: "ARUN", AZ: "ARUN", NH: "ARUN", NJ: "ARUN", VT: "ARUN", NM: "ARUN", FL: "ARUN", NV: "ARUN", WA: "ARUN", NY: "ARUN", SC: "ARUN", SD: "ARUN", WI: "ARUN", OH: "ARUN", GA: "ARUN", OK: "ARUN", CA: "ARUN", WV: "ARUN", WY: "ARUN", OR: "ARUN", KS: "ARUN", CM: "ARUN", CO: "ARUN", GU: "ARUN", KY: "ARUN", CT: "ARUN", PA: "ARUN", LA: "ARUN", TN: "ARUN", DC: "ARUN" };
    
    console.log(getKeys('BRANDON'));
    console.log(getKeys('ARUN'));
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

      【解决方案2】:

      如果您使用includes,您甚至不需要split。此外,您不需要使用map 来创建新数组:

      const data = {
        "DE": "ARUN",
        "HI": "ARUN",
        "PR": "ARUN",
        "TX": "ARUN",
        "MA": "ARUN",
        "MD": "CHARLES,BRANDON,DAVID,ARUN",
        "IA": "ARUN",
        "ME": "ARUN",
        "ID": "ARUN",
        "MI": "ARUN",
        "UT": "ARUN",
        "MN": "ARUN",
        "MO": "ARUN",
        "IL": "ARUN",
        "IN": "ARUN",
        "MS": "ARUN",
        "MT": "ARUN",
        "AK": "ARUN",
        "AL": "ARUN",
        "VA": "ARUN",
        "AR": "ARUN",
        "AS": "ARUN",
        "VI": "ARUN",
        "NC": "ARUN",
        "ND": "ARUN",
        "NE": "ARUN",
        "RI": "ARUN",
        "AZ": "ARUN",
        "NH": "ARUN",
        "NJ": "ARUN",
        "VT": "ARUN",
        "NM": "ARUN",
        "FL": "ARUN",
        "NV": "ARUN",
        "WA": "ARUN",
        "NY": "ARUN",
        "SC": "ARUN",
        "SD": "ARUN",
        "WI": "ARUN",
        "OH": "ARUN",
        "GA": "ARUN",
        "OK": "ARUN",
        "CA": "ARUN",
        "WV": "ARUN",
        "WY": "ARUN",
        "OR": "ARUN",
        "KS": "ARUN",
        "CM": "ARUN",
        "CO": "ARUN",
        "GU": "ARUN",
        "KY": "ARUN",
        "CT": "ARUN",
        "PA": "ARUN",
        "LA": "ARUN",
        "TN": "ARUN",
        "DC": "ARUN"
      }
      
      const name = 'BRANDON'
      
      const filteredData = Object.keys(data).filter(key => data[key].includes(name))
      
      console.log(filteredData)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-26
        • 1970-01-01
        • 2020-06-26
        • 1970-01-01
        • 1970-01-01
        • 2010-12-19
        相关资源
        最近更新 更多