I’m trying to create a new object from an array of strings, but I’m not able to create the desired object correctly.
I’m trying to create an object like:
{
"Employee1": {
"id": "Employee1"
},
"Employee2": {
"id": "Employee2"
}
}
Here’s my code:
function listToItemById(qsList, key = "id") {
const result = {};
qsList.forEach((item) => {
result[item][key] = item;
});
return result;
}
console.log(listToItemById(["Employee1", "Employee2", "Employee3", "Employee4", "Employee5", "Employee6", "Employee7", "Employee8"]));Advertisement
Answer
Yes.
First, we have to set result[item] to {} (a new, empty object):
function listToItemById(qsList, key = "id") {
const result = {};
qsList.forEach((item) => {
result[item] = {};
result[item][key] = item;
});
return result;
}
console.log(listToItemById(["Employee1", "Employee2", "Employee3", "Employee4", "Employee5", "Employee6", "Employee7", "Employee8"]));