我有一个预先渲染的议程项目数组,用户可以在其中添加项目,并键入项目应该具有的议程中的位置。
构造函数中的数组:
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)。我需要:
按ID排序并按顺序显示项目。
将前一项4推到位置5,同时
重新写下新项目之后所有项目的ID。
我不知道如何在打字稿中实现这一点。
有什么想法吗?
答案 0 :(得分:0)
原则上,更改“身份证”。不是个好主意。如果ID仅代表职位,那么您可能不需要它。
无论如何,关于对象插入,您可能需要使用splice
(请参阅How to insert an item into an array at a specific index?)
类似于:this.agendaItems.splice(4, 0, item)
关于重新计算,我建议使用for
遍历从所需位置到最后一项的所有项目,更改“id”#。