2017-04-19 59 views
4

我正在学习JavaScript,这可能是一个基本问题,请帮助我在下面获得成果。使用javascript从以下对象获取Key值对

我正在像下面这样在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"}, 
    ] 

在此先感谢

回答

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; }

+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; }

+0

Hi Mihai,谢谢!当我尝试在浏览器控制台中运行上述脚本时,出现错误“Uncaught SyntaxError:Unexpected token =>”。如果你能详细说明我的步骤,我会非常感谢 –

+0

我正在使用google chrome –

+0

可能不接受箭头功能。 –