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:
JavaScript
x
9
1
{
2
"Employee1": {
3
"id": "Employee1"
4
},
5
"Employee2": {
6
"id": "Employee2"
7
}
8
}
9
Here’s my code:
JavaScript
1
10
10
1
function listToItemById(qsList, key = "id") {
2
const result = {};
3
qsList.forEach((item) => {
4
result[item][key] = item;
5
});
6
7
return result;
8
}
9
10
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):
JavaScript
1
12
12
1
function listToItemById(qsList, key = "id") {
2
const result = {};
3
4
qsList.forEach((item) => {
5
result[item] = {};
6
result[item][key] = item;
7
});
8
9
return result;
10
}
11
12
console.log(listToItemById(["Employee1", "Employee2", "Employee3", "Employee4", "Employee5", "Employee6", "Employee7", "Employee8"]));