【问题标题】:$.inArray() : check if array value has "+" inside$.inArray() : 检查数组值中是否有“+”
【发布时间】:2023-04-04 03:00:01
【问题描述】:

我有一个由 jQuery 创建的数组,如下所示:

var arr = ["a+ab","g+cc","bc","dk"]

我想做一个检查器,以便遍历整个数组并只返回带有+ 的数组值。

处理后的结果应该是:

var arr2 = ["a+ab","g+cc"]

我应该使用$.inArray()吗?

如果我想用 + 号获取值,我会这样做:

var arr = ["a+ab", "g+cc", "bc", "dk"];

var res = arr.filter(function(v) {
  return v.indexOf('+') > -1;
})

console.log(res);

如果我想要不带 + 号的值怎么办?

var arr = ["a+ab", "g+cc", "bc", "dk"];

var res = arr.filter(function(v) {
  return v.indexOf('+') > 1;
})

console.log(res);

上面说的对吗?

更新:

function keywordArray() {
    var keywordArrayRow = [];

    $(".tag-container .tag-item .word").each(function (i, e) {
        keywordArrayRow.push($(e).text());
    });

    var keywordArray = keywordArrayRow.filter(function(v) {
        return v.indexOf('+') == -1;
    })
    return keywordArrayRow;
}
function AndkeywordArray() {
    var AndkeywordArrayRow = [];

    $(".tag-container .tag-item .word").each(function (i, e) {
        AndkeywordArrayRow.push($(e).text());
    });

    var AndkeywordArray = AndkeywordArrayRow.filter(function(v) {
        return v.indexOf(' + ') > -1;
    })

    return AndkeywordArray;
}

【问题讨论】:

    标签: jquery html arrays


    【解决方案1】:

    我不认为 $.inArray() 可以在这里使用。 $.inArray() 用于在数组中搜索指定值并返回其索引(如果未找到则返回 -1)。


    使用原生 JavaScript filter() 方法过滤数组

    var arr = ["a+ab", "g+cc", "bc", "dk"];
    
    var res = arr.filter(function(v) {
      return v.indexOf('+') > -1;
    })
    
    console.log(res);

    更新 1:

    如果您想要不包含+ 符号的元素,请使用以下代码。

    var arr = ["a+ab", "g+cc", "bc", "dk"];
    
    var res = arr.filter(function(v) {
      return v.indexOf('+') == -1;
    })
    
    console.log(res);

    更新 2:

    keywordArray 函数内部返回原始数组而不是过滤后的数组。

    function keywordArray() {
      var keywordArrayRow = [];
    
      $(".tag-container .tag-item .word").each(function(i, e) {
        keywordArrayRow.push($(e).text());
      });
    
      var keywordArray = keywordArrayRow.filter(function(v) {
        return v.indexOf('+') == -1;
      })
      return keywordArray;
      //---------^------ change here
    }
    

    【讨论】:

    • 如果我想反过来呢?只有没有 + 的值
    • 我应该返回 v.indexOf('+') > 1; 吗?
    • @anson920520 : 如果索引位置需要大于 1 则使用它
    • @anson920520 : 更新,indexOf() 如果未找到元素,则返回 -1
    • 您更新的那个似乎无法正常工作,它将所有内容都包含在我的数组中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多