[英]How to convert a JavaScript array to an object with a specified structure?
我有一個類似於下面示例logicData
的數組。
我想將此數組傳遞給一個 function ,它返回一個 object ,如下面的returnObject
。
另外,使用返回的 object,我需要重新創建原始的logicData
數組。
請任何人幫助我。 提前致謝。
// array
var logicData = [
{
details: {
name: "User-1",
id: 1,
age: "38",
},
company: "XYX",
position: "Accountant",
},
{
details: {
name: "User-2",
id: 2,
age: "55",
},
company: "XYX",
position: "Sales executive",
},
{
details: {
name: "User-3",
id: 3,
age: "25",
},
company: "XYX",
position: "Engineer",
},
{
details: {
name: "User-4",
id: 4,
age: "29",
},
company: "XYX",
position: "Engineer",
},
{
details: {
name: "User-5",
id: 5,
age: "32",
},
company: "XYX",
position: "Sales executive",
}
]
如何將數組轉換為以下格式
// require object formate
const returnObject = {
first: {
details: {
name: "User-1",
id: "1",
age: "38",
},
company: "XYX",
position: "Accountant",
},
second: {
first: {
details: {
name: "User-2",
id: 2,
age: "55",
},
company: "XYX",
position: "Sales executive",
},
second: {
first: {
details: {
name: "User-3",
id: 3,
age: "25",
},
company: "XYX",
position: "Engineer",
},
second: {
first: {
details: {
name: "User-4",
id: 4,
age: "29",
},
company: "XYX",
position: "Engineer",
},
second: {
details: {
name: "User-5",
id: 5,
age: "32",
},
company: "XYX",
position: "Sales executive",
}
}
}
}
}
要將returnObject
logicData
您可以使用/重用以下 function:
function convertArrToObj(arr){
let res = arr[arr.length - 1];
for(let i = arr.length - 1; i > 0; i--){
res = {
first: arr[i - 1],
second: res,
}
}
return res;
}
convertArrToObj(logicData);
並且為了將returnObject
之類的結構恢復為logicData
數組結構,您可以使用/重用這個function:
function revertObjToArr(obj){
const res = [];
let temp = obj;
while("second" in temp){
res.push(temp.first);
temp = temp.second;
}
res.push(temp);
return res;
}
revertObjToArr(returnObject);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.