使用javascript从现有对象创建新对象
我想知道如何使用javascript从现有对象创建新对象 我有object obj和array arr,因此需要以预期的输出格式创建一个对象使用javascript从现有对象创建新对象,javascript,arrays,object,Javascript,Arrays,Object,我想知道如何使用javascript从现有对象创建新对象 我有object obj和array 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};
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;
}
预期产出:
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' }
]
}
您需要使用嵌套循环。主循环返回对象的顶级数组,内部循环在每个对象内创建链接数组 函数getObjlang,obj{ 常量langObj=obj[lang][0]; return Object.keyslangObj.mapkey=>{ url:`/${lang}/${langObj[key]}`, 链接:Object.keysobj.mapl=>{ 朗:我, url:`/${l}/${obj[l][0][key]}` } }; } var obj={ 嗯:[{ 常见问题:常见问题, 关于:关于 }], 你好:[{ 常见问题解答:aksar Pooche jaane vaale, 关于:哈马雷·巴雷 }] }; console.loggetObjen,obj;
console.loggetObjhi,obj;checkout Object.assign,您的预期输出不完全有效。你是说两个对象的数组吗?至少需要两个循环或等效的迭代方法才能获得这种嵌套输出。obj.en和obj.hi的值是包含单个对象的数组。那里可以有多个对象吗?结果应该是什么样的?谢谢你的回复,但是url应该是“/hi/aksar pooche jaane vaale,/hi/hamare baare,正如预期的输出一样”`你能帮我修复它吗,我在第一个url属性中使用了错误的变量。
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' }
]
}