Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建新帖子时如何生成下一个项目id?_Javascript_Angular_Typescript_Ecmascript 6 - Fatal编程技术网

Javascript 创建新帖子时如何生成下一个项目id?

Javascript 创建新帖子时如何生成下一个项目id?,javascript,angular,typescript,ecmascript-6,Javascript,Angular,Typescript,Ecmascript 6,如果在add方法中,我只添加了“title”和“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-res

如果在add方法中,我只添加了“title”和“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",
}
显示帖子的模板:

    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",
}
我的阵列中的最后一篇帖子:

    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 last方法:

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模块