Você pode fazer isso com Object.assign () . Às vezes, você precisa de uma matriz, mas ao trabalhar com funções que esperam um único objeto JSON - como uma chamada OData -, achei esse método mais simples do que criar uma matriz apenas para descompactá-lo.
var alerts = {
1: {app:'helloworld',message:'message'},
2: {app:'helloagain',message:'another message'}
}
alerts = Object.assign({3: {app:'helloagain_again',message:'yet another message'}}, alerts)
//Result:
console.log(alerts)
{
1: {app:'helloworld',message:'message'},
2: {app:'helloagain',message:'another message'}
3: {app: "helloagain_again",message: "yet another message"}
}
EDIT: Para endereçar o comentário sobre a obtenção da próxima chave, você pode obter uma matriz de chaves com a função Object.keys () - consulte a resposta de Vadi para obter um exemplo de incremento da chave. Da mesma forma, você pode obter todos os valores com Object.values () e pares de valores-chave com Object.entries () .
var alerts = {
1: {app:'helloworld',message:'message'},
2: {app:'helloagain',message:'another message'}
}
console.log(Object.keys(alerts))
// Output
Array [ "1", "2" ]