【发布时间】:2019-07-12 06:13:27
【问题描述】:
我需要知道如何使用 javavscript 将 urltext 替换为对象。
如果url是www.xyz.com/en/all-services-from-mal-to-sin/details?amount=1000&scy=SGD,如果lang是en,那么用匹配的对象键替换url,如果lang是zh,那么用匹配的对象值替换url。
ExpectedOutput:
if url is
www.xyz.com/en/all-services-from-mal-to-sin?amount=1000&scy=SGD
=> output :www.xyz.com/en/all-services-from-mal-to-sin?amount=1000&scy=SGD
if url is
www.xyz.com/zh/all-services-from-mal-to-sin?amount=1000&scy=SGD
=> output: www.xyz.com/zh/hui-zhi-phi-tho-zmal-zhi-stin?amount=1000&scy=SG
if url is
www.xyz.com/en/hui-zhi-phi-tho-zmal-zhi-stin?amount=1000&scy=SG
=> output: www.xyz.com/en/all-services-from-mal-to-sin?amount=1000&scy=SGD
var obj1={
"transfer-services": "xi-hou-zhi-n",
"about-info": "zhi-zhu",
"contact": "zhi-phi",
"all-services-from": "hui-zhi-phi-tho",
"to": "zhi",
"sin": "stin",
"mal": "zmal"
};
function transformURL(url,value) {
let [base, lang, segment, ...rest] = url.split('/');
lang=value;
if(obj1.hasOwnProperty(segment)) {
segment = obj1[segment];
} else {
Object.entries(obj1).forEach(([key, val]) => {
if(val == segment) {segment = key};
});
}
return [base, lang, segment, ...rest].join('/');
}
console.log(transformURL('www.xyz.com/en/all-services-from-mal-to-sin?amount=1000&scy=SGD', "zh"));
【问题讨论】:
-
你的输出网址应该是什么?
-
@RAVIATEL 感谢您的回复,在预期输出中提到
-
它太具体了,我只会使用
if条件句或switch。你让这变得比它需要的更难。String.replace(). -
@StackSlave 感谢您的回复、道歉、更新代码
标签: javascript jquery arrays object