【问题标题】:Get Key value pairs from below object using javascript使用javascript从下面的对象获取键值对
【发布时间】:2017-04-19 10:18:52
【问题描述】:

我正在学习 javascript,这可能是一个基本问题,请帮助我实现以下目标。

我正在像下面这样在 obejct 中构造一个数组,以便以后使用数据。现在,我必须将类别作为“帮助”发送,并且需要动态获取它的所有子类别值。

 [
    {"category":"Help","subcategory":"Email"},
    {"category":"Help","subcategory":"application"},
    {"category":"Help","subcategory":"Software"},
    {"category":"Help","subcategory":"Hardware"},
    {"category":"Request","subcategory":"Access"},
    {"category":"Request","subcategory":"Remote"},
    ]

提前致谢

【问题讨论】:

    标签: javascript arrays filter


    【解决方案1】:

    您可以先使用Array#filter 过滤,然后使用Array#map 获取值。

    var array = [{ category: "Help", subcategory: "Email" }, { category: "Help", subcategory: "application" }, { category: "Help", subcategory: "Software" }, { category: "Help", subcategory: "Hardware" }, { category: "Request", subcategory: "Access" }, { category: "Request", subcategory: "Remote" }],
        subcategory = array
            .filter(a => a.category === 'Help')
            .map(a => a.subcategory);
        
    console.log(subcategory);
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    ES5

    var array = [{ category: "Help", subcategory: "Email" }, { category: "Help", subcategory: "application" }, { category: "Help", subcategory: "Software" }, { category: "Help", subcategory: "Hardware" }, { category: "Request", subcategory: "Access" }, { category: "Request", subcategory: "Remote" }],
        subcategory = array
            .filter(function (a) { return a.category === 'Help'; })
            .map(function (a) { return a.subcategory; });
        
    console.log(subcategory);
    .as-console-wrapper { max-height: 100% !important; top: 0; }

    【讨论】:

      【解决方案2】:

      您应该使用filter 方法来实现这一点。

      另外,使用map 方法以便仅使用subcategories 创建一个新数组。

      var array=[
          {"category":"Help","subcategory":"Email"},
          {"category":"Help","subcategory":"application"},
          {"category":"Help","subcategory":"Software"},
          {"category":"Help","subcategory":"Hardware"},
          {"category":"Request","subcategory":"Access"},
          {"category":"Request","subcategory":"Remote"},
      ];
      
      var subcategories = array.filter(a => a.category === "Help").map(a => a.subcategory);
      console.log(subcategories);
      .as-console-wrapper { max-height: 100% !important; top: 0; }

      【讨论】:

      • 嗨,米海,谢谢!当我尝试在浏览器控制台中运行上述脚本时,出现以下错误“Uncaught SyntaxError: Unexpected token =>”。如果您能给我详细的步骤,我将非常感激
      猜你喜欢
      • 2012-10-27
      • 2020-09-02
      • 2020-11-25
      • 1970-01-01
      • 2017-12-28
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      相关资源
      最近更新 更多