Good morning guys
I have to create a new JSON object array using the user array but when I do this getting the below error. could someone help me here? or help me to understand the mistake?
var users = [{ "name":"John", "age":30, "car":"fiat" },{ "name":"Raj", "age":28, "car":"hundai" }]; var allUser =[] for (var i = 0; i < users.length; i++) { test(i, users[i]) } console.log(allUser) function test(i, user) { console.log(i) <!-- allUser.push({"username":user.name}); --> allUser[i].username = user.name; //allUser[i].userage = user.age; //allUser[i].usercar = user.car; }
Expected Result:
all user should be like this
[{ "username":"John", "userage":30 },{ "username":"Raj", "userage":28 }]
Advertisement
Answer
Your test
function can be fixed in the following manner:
var users = [ { "name": "John", "age": 30, "car": "fiat" }, { "name": "Raj", "age": 28, "car": "hundai" }, ]; var allUser = []; for (var i = 0; i < users.length; i++) { test(i, users[i]); } console.log(allUser); function test(i, user) { allUser[i] = {}; // create and assign a new object to `allUser[i]` allUser[i].username = user.name; allUser[i].userage = user.age; allUser[i].usercar = user.car; }
However the above looks over complicated, and a map
call would simplify things a lot.
var users = [ { "name": "John", "age": 30, "car": "fiat" }, { "name": "Raj", "age": 28, "car": "hundai" }, ]; var allUser = users.map((user) => ({ username: user.name, userage: user.age, usercar: user.car, })); console.log(allUser);