Typescript - 动态地将id添加到数组并进行排序

时间:2016-08-11 07:03:38

标签: arrays typescript

我有一个预先渲染的议程项目数组,用户可以在其中添加项目,并键入项目应该具有的议程中的位置。

构造函数中的数组:

this.agendaItems = [{
        id: 1,
        subject: 'Opening of the meeting'
    }, {
        id: 2,
        subject: 'Election of chairman'
    }, {
        id: 3,
        subject: 'Approval of the agenda'
    }, {
        id: 4,
        subject: 'Presentation of the annual report and audit report'
    }, {
        id: 5,
        subject: 'Adjurnement of the meeting'
    },
];

将agendaItem推送到数组的方法:

saveAgendaItem(num: number, subj: string) {
    var item = {id: num, subject : subj}
    this.agendaItems.push(item);
}

这有效,但这是我的问题:让我们说用户想要将新项目添加到位置4(id)。我需要:

  1. 按ID排序并按顺序显示项目。

  2. 将前一项4推到位置5,同时

  3. 重新写下新项目之后所有项目的ID。

  4. 我不知道如何在打字稿中实现这一点。

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

原则上,更改“身份证”。不是个好主意。如果ID仅代表职位,那么您可能不需要它。

无论如何,关于对象插入,您可能需要使用splice(请参阅How to insert an item into an array at a specific index?

类似于:this.agendaItems.splice(4, 0, item)

关于重新计算,我建议使用for遍历从所需位置到最后一项的所有项目,更改“id”#。