我有一个像这样的对象:
let data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
};
我想用params对象中的等效键替换url中的:type和:id。javascript的最佳解决方案是什么?
基于的解决方案,将params
中的键与url
中的正则表达式的值进行匹配,然后更新该键。
On input:https://test.ir/apps/:type/:id/
输出:https://test.ir/apps/xyz/com.farsitel.bazaar/
let data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
};
let new_url = data.url.replace(/:(w+)/g, (match, key) => data.params[key] || match);
data.url = new_url;
console.log(data);
可以直接使用String.replace吗?
const data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
}
const url = data.url.replace(":type", data.params.type).replace(":id", data.params.id);
console.log(url)