JavaScript函数如何同时返回两个经Object.assign修改的对象?
方法1:返回数组形式
直接将两个对象按顺序存入数组返回,调用时可按索引取值或用解构赋值获取对应对象。
修改后代码:
function splitTheBill(x) { var obj1 = Object.assign({}, x); Object.assign(obj1, {A: 5, B: 0, C: -5}) var obj2 = Object.assign({}, obj1); delete obj2["C"] Object.assign(obj2, {A: 15, B: 0, X: -15}) return [obj1, obj2]; }
调用示例:
// 索引取值 const res = splitTheBill({}) const obj1 = res[0] const obj2 = res[1] // 解构赋值更便捷 const [obj1, obj2] = splitTheBill({})
方法2:返回包装对象形式
将两个对象作为属性存入一个总对象返回,无需记忆顺序,可读性更高。
修改后代码:
function splitTheBill(x) { var obj1 = Object.assign({}, x); Object.assign(obj1, {A: 5, B: 0, C: -5}) var obj2 = Object.assign({}, obj1); delete obj2["C"] Object.assign(obj2, {A: 15, B: 0, X: -15}) return { bill1: obj1, bill2: obj2 }; }
调用示例:
// 按属性名取值 const res = splitTheBill({}) const obj1 = res.bill1 const obj2 = res.bill2 // 解构赋值 const {bill1, bill2} = splitTheBill({})
内容的提问来源于stack exchange,提问作者Jonathan Joseph
相关产品推荐
相关产品推荐

