-2
我正在致力于reactjs项目 - 我在那里说英文url,比如“/ en/how-it-works”,并希望通过json树来查找位置/儿童级别设置此链接 - 并找到其德语匹配对。Javascript循环播放对象以查找匹配对网址
所以基本上 - 这是给英国的URL的功能,返回德国的URL
如此 -
LNG - 返回去 currenlang - 恩 pairUrl -/EN /如何-IT-工作
回报/德/ anleitung
或
LNG - 回报恩 currentlang德 pairUrl - /德/热门-projekte/bundle1
回报/ EN /流行的项目/ bundle1
//功能
getLanguagePair (lng, currentLng, pairUrl) {
// 'find url in json tree'
console.log('linkTreeObject', linkTreeObject.langs)
var obj = {}
//find position in tree
if(currentLng === 'de'){
obj = linkTreeObject.langs[0].lines.menu
} else {
obj = linkTreeObject.langs[1].lines.menu
}
var pos = []
for (var k in obj) {
if (!obj.hasOwnProperty(k)) continue
if (obj[k].link === pairUrl) {
pos[k]
}
}
console.log('pos' , pos)
if (lng === 'de') {
return '/de/link'
} else {
return '/en/link'
}
}
// JSON文件
{
"langs" : [
{
"lang" : "de",
"lines" : {
"menu" : [
{
"title": "Anleitung",
"link": "/de/anleitung",
"children" : []
},
{
"title": "Beliebte Projekte",
"link": "/de/beliebte-projekte",
"children" : [
{
"title" : "Bundle1",
"link" : "/de/beliebte-projekte/bundle1"
},
{
"title" : "Bundle2",
"link" : "/de/beliebte-projekte/bundle2"
}
]
}
],
"sign_in" : "Login"
}
},
{
"lang" : "en",
"lines" : {
"menu" : [
{
"title": "How it works",
"link": "/en/how-it-works",
"children" : []
},
{
"title": "Popular Projects",
"link": "/en/popular-projects",
"children" : [
{
"title" : "Bundle1",
"link" : "/en/popular-projects/bundle1"
},
{
"title" : "Bundle2",
"link" : "/en/popular-projects/bundle2"
}
]
}
],
"sign_in" : "Sign in"
}
}
]
}
我觉得你的是一个更好的例子 - 我只去从父到子 - 没有看孙子 - 递归 - 好主意 –
试图把这个变成我的例如 - 但它的失败 - http://jsfiddle.net/0ht35rpb/46/ –
你提琴有不同于上面的代码。您的代码是否失败或上述代码? – vabii