使用JavaScript从下面的对象中获取键值对

4

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

我正在对象内构建一个数组,如下所示,以便稍后使用数据。现在,我需要将类别发送为“帮助”,并需要动态获取所有子类别的值。

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

提前感谢您

2个回答

3
你可以使用 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; }


嗨,Mihai,谢谢!当我尝试在浏览器控制台中运行上述脚本时,我遇到了以下错误:“Uncaught SyntaxError: Unexpected token =>”。如果您能详细说明步骤,我将不胜感激。 - a krishna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接