【发布时间】:2017-05-18 16:02:50
【问题描述】:
我正在做一个 reactjs 项目——我在其中说了一个像“/en/how-it-works”这样的英文网址,并希望遍历 json 树以找到设置此链接的位置/子级别-- 并找到它的德语匹配对。
所以基本上 - 一个给定英文 url 的函数,返回德文 url
所以——
lng - 返回 de 当前语言 - zh pairUrl - /en/how-it-works
返回 /de/anleitung
或
lng - 返回 en 当前语言 pairUrl - /de/beliebte-projekte/bundle1
return /en/popular-projects/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"
}
}
]
}
【问题讨论】:
标签: javascript json