Javascript arrow功能而不是...
问题描述:
如何使用箭头函数缩短语法...?Javascript arrow功能而不是...
this.id = 1;
let products: Product[] = [
{
"id": 1,
"name": "Bycicle"
},
{
"id": 2,
"name": "iPhoneX"
}
];
for (let p of products) {
if (p.id == this.id) {
this.product = p;
break;
}
}
最后一块可以写成单行吗?我试过,但它看起来真的错了:
this.product = products.filter(p => p.id == this.id)[0];
我在.NET中寻找类似.FirstOrDefault
答
this.product = products.find(p => p.id === this.id)
为了得到一个相当于firstOrDefault
,你可以短路结果
this.product = products.find(p => p.id === this.id) || {}
答
find
应该做
this.product = products.find(p => p.id === this.id);
DEMO
let id =1;
var products = [
{
"id": 1,
"name": "Bycicle"
},
{
"id": 2,
"name": "iPhoneX"
}
];
let product = products.find(p => p.id === id);
console.log(product);
这是确定的,但我忘了告诉大家,我用的打字稿(因为Angular2的),所以我得到的当我使用||时,在第二个答案中出错{}“类型{}不能分配给类型Product ...” – Dalibor
...但我设法用||来解决它。新产品() – Dalibor