我知道如何搜索数组中的特定括号:
var arr = ['a','f','+'];
if($.inArray('+', arr) != -1){
alert("Contains a single +");
}
现在我的问题是:如何检查数组是否包含以+
开头的括号。如果是这样,有多少+
包含此括号。
答案 0 :(得分:2)
使用常规循环并匹配/^\++$/g
的正则表达式:
var arr = ['a','f','+','foo','asd+asd', '+++++++'];
for (var i = 0, arrLength = arr.length, match; i < arrLength; i++) {
match = arr[i].match(/^\++$/g);
if (match) {
console.log(arr[i] + ' contains ' + match[0].length + ' plus sign(s)');
}
}
输出:
+ contains 1 plus sign(s)
+++++++ contains 7 plus sign(s)
或者(因为它有点难以理解你的问题),下面将计算数组中有多少项只是加号:
var arr = ['a','f','+','foo','asd+asd', '+++++++'];
var onlyPlusses = [];
for (var i = 0, arrLength = arr.length; i < arrLength; i++) {
if (arr[i].match(/^\++$/g)) {
onlyPlusses.push(arr[i]);
}
}
console.log('arr has ' + onlyPlusses.length + ' items that only consist of plusses');
输出:
arr has 2 items that only consist of plusses
答案 1 :(得分:1)
使用对象维护哪些数组索引包含加号的列表。
var obj = {};
for (var i = 0, l = arr.length; i < l; i++) {
if (arr[i].indexOf('+') > -1) {
obj[i] = arr[i].match(/\+/g).length;
}
}
示例强>
var arr = ['a', '+', 'd', '+++'] // {1: 1, 3: 3}