仅当字符串不为空时,我是否可以将字符串插入 URL?



我尝试从数据库中获取数据。我可以包含一些可选部分,以使搜索更加具体。

我有一个这样的对象:

{
title: "wonderland",
aliases: "",
...
}

现在我想为 GET 请求创建一个 URL

getResults(obj){
return this.http.get(`${this.url}/title=${obj.title}&aliases=${obj.aliases}`)
}

现在我想删除部分&aliases=${obj.aliases}因为,正如您在上面看到的,在这种情况下,属性别名为空。 如果属性标题为空,我想删除title=${obj.title}.

你会怎么做?

试试这个。比你想做的更好

let object = {
title: "wonderland",
aliases: ""
}
function addOptionalParameters(urlPath) {
let count = 0;
for(let param in object){
if (object[param]) {
if (count === 0 ) {
urlPath = `${urlPath}/${param}=${object[param]}`
} else {
urlPath = `${urlPath}&${param}=${object[param]}`
}
count ++;
}
}
return urlPath;
}
function getResults(obj) {
let urlPath = `${this.url}`
urlPath = addOptionalParameters(urlPath)
return this.http.get(`${urlPath}`)
}

你可以做这样的事情:


getAliasQuery(aliases) {
if (aliases) return '&aliases=${aliases}';
return '';
}
getResults(obj){
return this.http.get(`${this.url}/title=${obj.title}${getAliasQuery(obj.aliases)}`)
}

最新更新