2014-05-06 66 views
0

我知道如何在數組中搜索特定的支架:搜索數組中的多數民衆贊成在支架始於一個'+'

var arr = ['a','f','+']; 

if($.inArray('+', arr) != -1){ 
    alert("Contains a single +"); 
} 

現在我的問題是:如果數組包含我怎麼能檢查括號以+開頭。而且,如果是這樣,有多少個+包含這個括號。

+0

什麼是 「我怎麼能檢查數組包含以+初學者括號」 呢? – Andy

+0

方括號?你的意思是物品嗎?請更加明確。你有什麼輸入/輸出? –

+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

使用對象保持什麼數組索引列表保持加計數。

var obj = {}; 
for (var i = 0, l = arr.length; i < l; i++) { 
    if (arr[i].indexOf('+') > -1) { 
    obj[i] = arr[i].match(/\+/g).length; 
    } 
} 

Demo

var arr = ['a', '+', 'd', '+++'] // {1: 1, 3: 3} 
相關問題