Die Suche nach einer freien ID kann man durch eine Maximumsuche lösen
Das kann zu Datenverlust führen. Nämlich dann, wenn das Maximum gleich einer ID ist die bereits vergeben ist. Besser also eine von der Anzahl der Records unabhängige Verwaltung fortlaufender Nummern. Alles zusammen:
{
cfg: {lfdnr:2},
1:{name:'',vname:'',id:1},
2:{name:'',vname:'',id:2,phone:''}
}
.