簡體   English   中英

如何通過 javascript 中的兩個對象創建新的 object

[英]How to create new object by two objects in javascript

我想知道如何通過 javascript 中的兩個對象創建新的 object。

遍歷 obj1,並添加 obj2 值,在 javascript 中創建新的 object

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
}

預計 Output

 {
   time: "16:01-23:59"
   val: 10 // represents obj2.qty,
   totalqty: 1065, 
   totalamount: 8229170,
   price: 120
 }

您可以編寫 function 並獲得所需的屬性:

 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);

在此處閱讀更多 Object.assign()。

您可以解構這些對象,重命名一些屬性並返回一個新的 object。

 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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM