Ну например так, да?
const salaryObj = {
'001' : 50500,
'002' : 96800,
'003' : 12009,
pay : function () {
return Object.keys(this).reduce((a,b) => !isNaN(b) ? a += `${b} : ${this[b]}\n` : a, '');
},
sum : function () {
return Object.values(this).reduce((a,b) => !isNaN(b) ? a += b : a, 0);
},
avg : function () {
return this.sum() / Object.values(this).filter(e => !isNaN(e)).length;
},
min : function () {
return Object.values(this).sort().filter(e => !isNaN(e))[0];
},
max : function () {
return Object.values(this).sort().filter(e => !isNaN(e)).reverse()[0];
}
}
const salaryObjClone = Object.assign({}, salaryObj);
console.log( salaryObj.pay() ); // 001 : 50500 002 : 96800 003 : 12009
console.log( salaryObj.sum() ); // 159309
console.log( salaryObj.avg() ); // 53103
console.log( salaryObj.min() ); // 12009
console.log( salaryObj.max() ); // 96800
console.log( salaryObjClone ); // Полная копия объекта salaryObj