I have an object named obj that will be used as a basis to create a new array of objects in a certain format.
My base object:
var obj={
"en": [{
"faq": "faq",
"about": "about"
}],
"hi": [{
"faq": "aksar-poochhe-jaane-vaale",
"about": "hamaare-baare"
}]
}
I created a function getObj() which accepts two arguments lang and the base object obj.
SAMPLE SCENARIOS
When I call:
getObj("en", obj);
I should get:
[{
"url": "/en/faq",
"links": [
{ lang: 'en', url: '/en/faq' },
{ lang: 'hi', url: '/hi/aksar-poochhe-jaane-vaale' }
]
},
{
"url": "/en/about",
"links": [
{ lang: 'en', url: '/en/about' },
{ lang: 'hi', url: '/hi/hamaare-baare' }
]
}]
When I call:
getObj("hi", obj);
I should get:
[{
"url": "/hi/aksar-poochhe-jaane-vaale",
"links": [
{ lang: 'en', url: '/en/faq' },
{ lang: 'hi', url: '/hi/aksar-poochhe-jaane-vaale' }
]
},
{
"url": "/hi/hamaare-baare",
"links": [
{ lang: 'en', url: '/en/about' },
{ lang: 'hi', url: '/hi/hamaare-baare' }
]
}]
Below is what I tried:
function getObj(lang, obj){
var newobj = {};
newobj['url'] = "/"+ lang +"/"+obj[lang].map(e=>e.faq);
var s ={lang: lang, url: newobj.url};
newobj['links']=[s];
return newobj;
}
obj.enorobj.hisupposed to be an array? Will it contain more than one object? Because in your sample, it only has one despite being an array.