将对象访问到数组中?

时间:2017-01-15 18:44:02

标签: javascript angular typescript

我需要访问密钥"类别' specCategory'和'总计'我希望将它保存到Angular2 * ngFor

的数组中的关键和值

我该怎么做?

 let data =   [ { _id: { category: 'Wasser & Wind', specCategory: 'Surfen' },
  min: 49, max: 500, total: 1 }, { _id: { category: 'Reisen', specCategory: 
'Hotel' }, min: 49, max: 500, total: 1 } ]

1)* ngFor

我尝试通过*ngFor="let x of data" {{x._id.category}}访问,但这不起作用

2) JSON.parserJSON.stringify

我还使用了JSON.parserJSON.stringify

let dataJson = JSON.stringyfy(data[0]._id);
console.log(dataJson.category);

获取错误。

3)for循环:

我尝试使用for循环

for(var i in data){
    console.log(data[i].category)
}
  

错误:找不到类别

2 个答案:

答案 0 :(得分:0)

of循环中尝试使用in代替for,如下所示:

for (d of data) {
   alert(d._id.category)
}

of将遍历对象本身,其中in将遍历对象的keys

有关示例,请参阅此fiddle

答案 1 :(得分:0)

我可以从你的问题中猜出,你想要的是:

const data = [{
    _id: {category: 'Wasser & Wind', specCategory: 'Surfen'},
    min: 49,
    max: 500,
    total: 1
}, {_id: {category: 'Reisen', specCategory: 'Hotel'},
    min: 49,
    max: 500,
    total: 1
}];       
const result = data.map(item => ({'category': item._id.category, 'specCategory': item._id.specCategory, 'total': item.total}));

然后在HTML中(例如):

<ul>
    <li *ngFor="let item of result">{{item.category}}: {{item.specCategory}} ({{item.total}})</li>
</ul>