解析列表列表并转换为JSON对象:
我正在尝试将列表列表解析为 json 对象。我需要以下输出,但我的逻辑无法正确获取实际输出,而是将键/值附加到数组中
输入(数组):
var arraysample =
[
[
["firstName", "Vasanth"],
["lastName", "Raja"],
["age", 24],
["role", "JSWizard"]
],
[
["firstName", "Sri"],
["lastName", "Devi"],
["age", 28],
["role", "Coder"]
]
];
预期输出
[
{firstName: “Vasanth”, lastName: “Raja”, age: 24, role: “JSWizard”},
{firstName: “Sri”, lastName: “Devi”, age: 28, role: “Coder”}
]
我的输出:
[
[ 'firstName', 'Vasanth' ],
[ 'lastName', 'Raja' ],
[ 'age', 24 ],
[ 'role', 'JSWizard' ],
firstName: 'Vasanth',
lastName: 'Raja',
age: 24,
role: 'JSWizard'
],
[
[ 'firstName', 'Sri' ],
[ 'lastName', 'Devi' ],
[ 'age', 28 ],
[ 'role', 'Coder' ],
firstName: 'Sri',
lastName: 'Devi',
age: 28,
role: 'Coder'
]
]
我的逻辑:
for(var i=0;i<arraysample.length;i++)
{
for(var j=0;j<arraysample[i].length;j++)
{
arraysample[i][arraysample[i][j][0]]=arraysample[i][j][1];
}
}
回答
你可以用Object.fromEntries()与Array.prototype.map():
var arraysample = [
[
["firstName", "Vasanth"],
["lastName", "Raja"],
["age", 24],
["role", "JSWizard"]
],
[
["firstName", "Sri"],
["lastName", "Devi"],
["age", 28],
["role", "Coder"]
]
];
var result = arraysample.map(Object.fromEntries);
console.log(result);