[英]New object from existing object using javascript
I would like to know how to create a new object from existing object using javascript. 我想知道如何使用javascript从现有对象创建新对象。
I have object obj
and array arr
, from that need to create a object in the expected output format. 我有对象
obj
和数组arr
,从中需要以预期的输出格式创建一个对象。
var result =getObj("en", obj);
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;
}
var obj={
"en": [{
"faq": "faq",
"about": "about"
}],
"hi": [{
"faq": "aksar-poochhe-jaane-vaale",
"about": "hamaare-baare"
}]
}
Expected Output: 预期产量:
getObj("en", obj);
//expected result
{
"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' }
]
}
getObj("hi", obj);
//expected result
{
"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' }
]
}
You need to use nested loops. 您需要使用嵌套循环。 The main loop returns the top-level array of objects, and the inner loop creates the
links
array within each object. 主循环返回对象的顶级数组,内部循环在每个对象内创建
links
数组。
function getObj(lang, obj) { const langObj = obj[lang][0]; return Object.keys(langObj).map(key => ({ url: `/${lang}/${langObj[key]}`, links: Object.keys(obj).map(l => ({ lang: l, url: `/${l}/${obj[l][0][key]}` })) })); } var obj = { "en": [{ "faq": "faq", "about": "about" }], "hi": [{ "faq": "aksar-poochhe-jaane-vaale", "about": "hamaare-baare" }] }; console.log(getObj("en", obj)); console.log(getObj("hi", obj));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.