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