如何在jQuery中搜索ID
时删除相同的值queryString,ID
传递textarea
并在搜索时调用API。搜索类似的IDs
时,它会显示两个相似的项目,因此如果我可以删除相同的queryString值,则会阻止它获取类似的项目。
QueryString看起来像这个Product?id=1&id=1
然后呈现项目两次。
从textarea
var getVal = $('textarea.input_' + inputSearch.name).val();
if (getVal != null && (getVal != "")) {
let inputValues = getVal
.split("\n") // allows multiple search using new line
.filter(function (str) { return str !== "" })
.join("&" + inputSearch.name + "=");
// then add it to the overall query string for all searches
query = query + inputSearch.name + "=" + inputValues + "&";
}
答案 0 :(得分:1)
您可以在加入之前扩展您对array.prototype.filter()
的使用以实现唯一性:
var getVal = $('textarea.input_' + inputSearch.name).val();
if (getVal != null && (getVal != "")) {
let inputValues = getVal
.split("\n") // allows multiple search using new line
.filter(function (elem, index, self) {
return elem !== "" && index == self.indexOf(elem)
})
.join("&" + inputSearch.name + "=");
// then add it to the overall query string for all searches
query = query + inputSearch.name + "=" + inputValues + "&";
}
答案 1 :(得分:0)
而不是连接某些值,您可以使用javascript中的地图集合
用于js中的地图集合实现,请查看以下链接
答案 2 :(得分:0)
这个怎么样?它使用一些新的并且不完全兼容的数据结构。但它有效
var query='';
var parameters = new Set();
var getVal = "1\n2\n3";
if (getVal != null && (getVal != "")) {
getVal.split("\n")
.filter(function (str) { return str !== "" })
.map(function(str) {parameters.add(str)});
let query = new URLSearchParams();
for(let q of params) {
query.append(inputSearch.name,q);
}
query.toString();
}