为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过javascript中的两个对象创建新对象

如何通过javascript中的两个对象创建新对象

FFIVE 2022-12-09 15:24:21
我想知道如何通过 javascript 中的两个对象创建新对象。遍历 obj1,并添加 obj2 值,在 javascript 中创建新对象function getObject(obj1, obj2){  let result={};  Object.keys(obj1).forEach(key=>{    if(key==="start" || key==="end"){      result.time= obj1.start+"-"+obj1.end,      result.qty= obj2.qty    }  }) }var obj1 ={  start: "16:01", end: "23:59", totalqty: 1065, totalamount: 8229170}var obj2 = {  qty: 10,   amt: 120}预期产出 {   time: "16:01-23:59"   val: 10 // represents obj2.qty,   totalqty: 1065,    totalamount: 8229170,   price: 120 }
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您可以编写一个函数并获得所需的属性:


var obj1 ={

  start: "16:01", end: "23:59", totalqty: 1065, totalamount: 8229170

}


var obj2 = {

  qty: 10,

  amt: 120

}


const merge = (obj1, obj2) => {

  return {

    time: obj1.start + '-' + obj1.end,

    val: obj2.qty,

    totalqty: obj1.totalqty,

    totalamount: obj1.totalamount,

    price: obj2.amt

  };

}


console.log(merge(obj1, obj2));


此外,您可以使用spread语法,但它会合并所有属性:


let obj1 ={

  start: "16:01", end: "23:59", totalqty: 1065, totalamount: 8229170

}


let obj2 = {

  qty: 10, 

  amt: 120

}


let merged = {...obj1, ...obj2};

console.log(merged );


或尝试使用Object.assign()它也合并了所有属性:


var obj1 ={

  start: "16:01", end: "23:59", totalqty: 1065, totalamount: 8229170

}


var obj2 = {

  qty: 10, 

  amt: 120

}


var result = Object.assign({}, obj1, obj2);

console.log(result);


查看完整回答
反对 回复 2022-12-09
?
慕标5832272

TA贡献1966条经验 获得超4个赞

您可以解构对象,重命名一些属性并返回一个新对象。


const

    merge = ({ start, end, totalqty, totalamount }, { qty: val, amt: price }) =>

        ({ time: start + "-" + end, val, totalqty, totalamount, price}),

    obj1 = { start: "16:01", end: "23:59", totalqty: 1065, totalamount: 8229170 },

    obj2 = { qty: 10, amt: 120 };


console.log(merge(obj1, obj2));


查看完整回答
反对 回复 2022-12-09
  • 2 回答
  • 0 关注
  • 95 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信