javascript - Actualizando el valor de un objeto en node
Tengo una lista de objetos y no puedo recopilar todas las actualizaciones a la vez.
Codelet answers = {};
bot.on('message', (msg) => {
var chatId = 1245454; // unique for each user
var text = msg.text; // input text by user
answers[chatId] = {
name: '',
symbol: ''
}
// if user type `a` we set name to `sam` (for testing purpose only)
if(text = 'a') {
answers[chatId].name = 'sam';
}
// if user type `b` we set symbol to `@` (for testing purpose only)
if(text = 'b') {
answers[chatId].symbol = '@';
}
}
El aspecto final de answers será como:
answers = {
1245454: {
name: 'sam',
symbol: '@'
},
222222: {
name: 'Tom',
symbol: '!'
},
// and so on...
};
IssueEl problema es que cuando actualizo symbol, el valor de name volverá a su valor predeterminado y se convertirá en name: '',
example// updating name
answers = {
1245454 {
name: 'sam',
symbol: ''
},
};
// updating symbol
answers = {
1245454 {
name: '',
symbol: '@'
},
};
// supposed to be
answers = {
1245454 {
name: 'sam',
symbol: '@'
},
};
¿Alguna sugerencia?
Respuesta #1
Verifica la existencia de answers[chatId] antes de crear el nuevo objeto vacío.
if (!answers[chatId]) {
answers[chatId] = {
name: '',
symbol: ''
}
}
Esto dejará los objetos answers existentes para actualizaciones.
