簡體   English   中英

JSON 對象展平或使用 javascript 創建

[英]JSON object flattening or creation with javascript

目的:

{
    firstName: "Doe",
    address: "California",
    mobile: "xxxx"
}

對象或數組列表:

[
  { name: "course1", value: "1" } ,
  { name: "course2", value: "2" } ,
  { name: "course3", value: "3" }
]

預期輸出或對象來自:

{
  firstName: "Doe",
  address: "California",
  mobile: "xxxx",
  course1: "1",
  course2: "2",
  course3: "3"
}

我想使用 javascript 實現上述對象。

謝謝 !

您可以嘗試使用map()Object.assign() ,如下所示:

 var obj = { firstName : "Doe", address : "California", mobile : "xxxx" }; var arr = [{name : "course1",value : "1"} , {name : "course2",value : "2"} , {name : "course3",value : "3"}]; arr = arr.map(v => ({[v.name]: v.value})); var newObj = Object.assign(obj, Object.assign({}, ...arr)); console.log(newObj);

您可以使用Array.reduceComputed property names獲得預期的輸出。

 let data = { firstName : "Doe", address : "California", mobile : "xxxx" }; let courses = [{name : "course1",value : "1"} , {name : "course2",value : "2"} , {name : "course3",value : "3"}]; const finalRes = courses.reduce((res, obj) => { return { ...res, [obj.name]: obj.value }; }, {...data}); console.log(finalRes)

您可以將每個對象的值映射到條目,然后使用Object.fromEntries將它們轉換為對象。 擁有新對象后,將其應用到原始對象。

 const sourceObject = { firstName: "Doe", address: "California", mobile: "xxxx" }; const propArray = [ { name: "course1", value: "1" } , { name: "course2", value: "2" } , { name: "course3", value: "3" } ]; const resultObject = { ...sourceObject, ...Object.fromEntries(propArray.map(p => Object.values(p))) }; console.log(resultObject);
 .as-console-wrapper { top: 0; max-height: 100% !important; }

暫無
暫無

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

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