Мне нужно добавить дополнительное поле к объекту результата mysql, прежде чем отправлять его во внешний интерфейс. (В моем случае это .ejs)
Это моя строка результата mysql:
RowDataPacket{ agent_id: 1,name: 'John', email: '[email protected]', mobile: 000000 }
Мне нужно добавить: {'Key': 'value'} к этому объекту строки mysql?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


У меня сработал следующий метод. Надеюсь, это кому-то поможет.
for(var o = 0;o < rows.length;o++){
var j = JSON.parse(JSON.stringify(rows[o]));
var names = Object.keys(j);
var vals = Object.keys(j).map(function(_) { return j[_]; });
names.push('Key');
vals.push('Value');
var jObj = {};
names.forEach(function(k,i){
jObj[k] = vals[i];
});
console.info(jObj);
}
@obfish Я не совсем уверен, нужен ли глубокий клон. Но я не мог передать значения исходному объекту.
Если вы уверены, что RowDataPacket плоский (я предполагаю, что данные MySQL), вы можете попробовать Object.assign({'Key': 'value'}, rawDataPack). У меня не было теста, но я считаю, что он должен быть намного быстрее.
Интересно, нужен ли глубокий клон. Вы уверены, что редактировать исходный объект нельзя?