Puede hacer esto con Object.assign () . A veces necesita una matriz, pero cuando trabaja con funciones que esperan un solo objeto JSON, como una llamada OData, he encontrado este método más simple que crear una matriz solo para descomprimirlo.
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"}
}
EDITAR: para abordar el comentario sobre la obtención de la siguiente clave, puede obtener una matriz de claves con la función Object.keys () ; consulte la respuesta de Vadi para ver un ejemplo de incremento de la clave. Del mismo modo, puede obtener todos los valores con Object.values () y pares clave-valor con Object.entries () .
var alerts = {
1: {app:'helloworld',message:'message'},
2: {app:'helloagain',message:'another message'}
}
console.log(Object.keys(alerts))
// Output
Array [ "1", "2" ]