我想了解如何使用唯一ID推送新行。 如果canvas不为空,我想使用以下ID推送一个新的Row。如果canvas已经有一行,那么下一个就是2,依此类推。
我应该获得canvas数组,使用最新的ID搜索我的最后一行对象吗? (我将在1000行内,所以这可能会很慢) 或者有没有办法只是增加下一个数字而不进行循环?
canvas: Array<any> = [];
row: Array<any> = [];
onDropSuccess(event: any, droppedOn: string) {
if(this.canvas == [] || this.canvas == null || this.canvas == 0 ){
this.canvas.push(
new Row(1,
[new Widget('Lorem ipsumrci viverra auctor')]
)
);
console.log(this.canvas)
}else{
this.canvas.push(
**//How to push here a new row with unique ID**
new Row(1,
[new Widget('Lorem ipsumrci viverra auctor')]
)
);
console.log(this.canvas)
}
}
class Row {
constructor(public id: Number, public widgets: Array<Widget>) {}
}
class Widget {
constructor(public name: string) {}
}
答案 0 :(得分:2)
如果你的行始终从1开始并且只需要增加为唯一,那么你所需要的就是(无需条件,因为你的数组始终以0的长度开始):
import com.test.example.DeprecatedClass;
/**
* This class replaces the deprecated class @{link DeprecatedClass}
*/
@SuppressWarnings("deprecation")
public class ReplacingClass {}
如果您的数组可能以任何顺序具有任何可能的数字ID集,您可以对数组进行排序,找到最大数字,然后递增:
onDropSuccess(event: any, droppedOn: string) {
this.canvas.push(
new Row(this.canvas.length+1, [new Widget('Lorem ipsumrci viverra auctor')])
);
}