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

我想知道如何通过 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

 }


FFIVE
浏览 98回答 2
2回答

ibeautiful

您可以编写一个函数并获得所需的属性: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);

慕标5832272

您可以解构对象,重命名一些属性并返回一个新对象。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));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript