Reputation: 133
var userLists = {
user0 : {username: 'user9110252username', genrePref: 'user9110252genre'},
user1 : {username: 'Jon', genrePref: 'rock'},
user2 : {username: 'Lucy', genrePref: 'pop'},
user3 : {username: 'Mike', genrePref: 'rock'},
}
I am getting input like userLists.user from somewhere it should be like userLists.user0 how can i convert this request
var i =0;
for(var key in userLists) {
console.log(userLists.user+i)
i++;
}
Upvotes: 0
Views: 93
Reputation: 5308
If I understand your question correctly, do you want like this ?
var userLists = {
user0 : {username: 'user9110252username', genrePref: 'user9110252genre'},
user1 : {username: 'Jon', genrePref: 'rock'},
user2 : {username: 'Lucy', genrePref: 'pop'},
user3 : {username: 'Mike', genrePref: 'rock'},
}
var result = Object.fromEntries(Object.entries(userLists).map(([k,v], i)=>[k=i, v]));
console.log(result);
Or you can do similar manipulation inside map function
according to your requirement.
Upvotes: 1
Reputation: 10662
If you want to use forEach
or map
you can do that on arrays but since you have an object you can use Object.entries
for getting an array of arrays. There are also Object.keys
and Object.values
.
var userLists = {
user0 : {username: 'user9110252username', genrePref: 'user9110252genre'},
user1 : {username: 'Jon', genrePref: 'rock'},
user2 : {username: 'Lucy', genrePref: 'pop'},
user3 : {username: 'Mike', genrePref: 'rock'},
}
Object.entries(userLists).forEach(([key, value]) => {
console.log(key, value);
})
Upvotes: 1