【发布时间】:2017-01-20 11:32:59
【问题描述】:
我有三个数组:
tables = [{number:1},{number:2},{number:3},{number:4}];
foods = [
{id:1, name:'Ice Cream'},
{id:2, name:'Pizza'},
{id:1, name:'Hot Dog'},
{id:2, name:'Salad'}
];
orders = [
{table_id: 2, food_id: 3},
{table_id: 4, food_id: 2}
];
我想:
- 按编号列出所有表。
- 检查表是否有订单,即
orders数组中是否存在table_id。 - 如果是,则从 orders 数组中获取对应的 food_id 并显示
food name。
如下:
<!-- !INCORRECT SYNTAX -->
<div *ngFor="let table of tables">
<h1>TABLE #{{table.number}}</h1>
<div *ngIf="orders && orders.length > 0 && orders.table_id.includes(table.number)">
<ul *ngFor="let order of orders where(order.table_id == table.number)">
<li>Orders: {{food_name_from(order.food_id) }}</li>
</ul>
</div>
</div>
我刚刚读到新的 ECMAScript 2016 包含一个用于数组的 includes 方法:
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
但我不知道如何以对象作为元素来实现它。最好的方法是什么?
【问题讨论】:
标签: javascript angular