我正在通过分离数组中的每个值来进行多搜索,并且它正常工作。但是,如果用户输入一个空值,它会因为该空值而中断搜索,它只会返回数组集合中的空字符串。
有没有办法修剪或删除那个空值?
https://plnkr.co/edit/NXrBtMseWpKrL41K5ojp?p=preview
var idInputValue = document.getElementById("search").value.split('\n');
console.log(idInputValue);
if (idInputValue) {
var ids = idInputValue;
var queryString = "?";
for (var i = 0; i < ids.length; i++) {
var id = ids[i];
if (i > 0) {
queryString += "&";
}
queryString += ("id=" + id);
}
return queryString;
}
答案 0 :(得分:2)
试试这个
for (var i = 0; i < ids.length; i++) {
var id = ids[i];
if (id && id.length > 0) {
queryString += "id=" + id + "&";
}
}
return queryString.substring(0, queryString.length-1);
答案 1 :(得分:1)
方法Array.prototype.filter
仅因此而存在,用于从数组中过滤掉不需要的值。如果您愿意,可以像这样简化搜索方法:
function search() {
var searchInput = document.getElementById("search");
return "?id=" + searchInput.value
.split("\n")
.filter(function(str) {
return str !== ""
})
.join("&id=");
}
答案 2 :(得分:0)
我用它来过滤掉空白输入值:
var str = idInputValue.replace(' ', '');
if(str == '') {
// string is blank
console.log('here');
}
然后,您可以遍历数组中的每个值来检查它们,如下所示:
for (var i = 0; i < ids.length; i++) {
var id = ids[i];
var str = id.replace(' ', '');
if(str !== '') {
// string is blank
if (i > 0) {
queryString += "&";
}
queryString += ("id=" + id);
}
}