如何在javascript中修剪/删除数组集合中的空字符串

时间:2016-08-16 21:19:32

标签: javascript arrays

我正在通过分离数组中的每个值来进行多搜索,并且它正常工作。但是,如果用户输入一个空值,它会因为该空值而中断搜索,它只会返回数组集合中的空字符串。

有没有办法修剪或删除那个空值?

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;
    }

3 个答案:

答案 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);

工作小提琴:https://github.com/jcarm010/osx-dock-remover

答案 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);
    }
}