А зачем в данном случае вам нужно изобретение велосипеда? Или вам нужно именно изобретение велосипеда?
const result = Object.entries({ name: 'Ivan', age: 24 })
.reduce((object, [key, value]) => {
object[key + "_"] = value + "$";
return object;
}, {});
console.log(result);
Если нужно именно через объявление, то можно так...
function map(object, reducer) {
return Object.entries(object).reduce(reducer, {})
}
const result = map({ name: 'Ivan', age: 24 }, (object, [key, value]) => {
object[key + "_"] = value + "$";
return object
});
console.log(result);
В callback вам не нужен новый объект? Сомневаюсь!