如果在add方法中,我只添加“标题”和“url”,如何生成帖子中的下一个ID?
方法:
addPost(title:string, url:string):void {
const post = {
title:title,
url: url
};
this.collection.push(post);
}
我展示帖子的模板:
<img [src]="pic.url" alt="test" class="img-responsive">
<p class="lead"><span>{{pic.id}}:</span>{{pic.title}}</p>
<div class="del">
<button class="btn btn-outline-danger (click)="removePost(pic.id)">Delete</button></div>
输入数据接口:
export interface Picture {
id?: number,
title: string,
url: string
}
我的数组中的最后一篇文章:
{
id: 10,
title: "beatae et provident et ut vel",
url: "https://placekitten.com/200/200",
}
如果您使用 lodash,请使用 lodash 最后的方法:
addPost(title:string, url:string):void {
const post = {
title:title,
url: url,
id: _.last(this.collection).id + 1
};
this.collection.push(post);
否则如果纯 JavaScript:
addPost(title:string, url:string):void {
const post = {
title:title,
url: url,
id: this.collection[this.collection.length -1].id + 1
};
this.collection.push(post);
这假设下一个 ID 将是 ID 加上集合中最后一个对象之一。
如果集合当前为空,您可能还需要引入一些防御代码将 ID 设置为 1。
您也可以只使用 GUID 或 UUID 生成器,请参阅非常流行的 npm uuid 模块。