$ .inArray():检查数组值是否在内部有“+”

时间:2016-06-02 08:38:05

标签: jquery html arrays

我有一个像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;
}

1 个答案:

答案 0 :(得分:4)

我不认为 $.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
}