簡體   English   中英

檢查一個數組元素是否包含字符串

[英]Check if ONE array element contains a string

是否有可能在數組的每個元素內搜索字符串。

所以如果我有

var arr =["select 1", "select 2", "unselect 1"];

我想查看哪些數組元素中包含“ 1”,然后刪除那些不包含的元素。 這是我的代碼,但無法正常工作。

var RowNum = ( $('table.input-table > tbody > tr').length);
var type = [];
for(var i=0; i<=(RowNum - 1); i++){
    type.push( $("table.input-table > tbody > tr").eq(i).html());
};
alert(type.length);

for(var i = (type.length - 1); i >= 0 ; i--){
    var SpliceVal = 0;

    for(var ii = 0; ii <= (Req.length -1); ii++){
        if(type[i].indexof(Req[ii]) == -1){
            SpliceVal += 1;    
        };  
    };

    if(SpliceVal == Req.length){
        type.splice(i, 1);
    };
};
alert(type.length);

第一個警報(type.length); 返回7。Req.length = 3

第二個警報(type.length); 應該返回3

該代碼將部分運行,直到我上線為止:

if(type[i].indexof(Req[ii]) == -1)

我收到一條錯誤消息,提示TypeError:type [i] .indexof不是函數

任何幫助表示贊賞

我會使用過濾器;

var containsOne = function(el) {

   return el.indexOf('1') !== -1;
}

var filtered = ['select', 'select', 'select1'].filter( containsOne );

//returns 'select1'

http://jsfiddle.net/8vmjb1Lt/

如果您不習慣使用接合而不是其他方法:

var arr =["select 1", "select 2", "unselect 1", "uneselect 2", "select 1"];

for (var i = 0; i < arr.length; i++) {
    if (arr[i].indexOf("1") > -1) {
        arr.splice(i, 1);
        if (i !== 0) {i--;}
    }
}

更新了JSFIddle

這將修改原始數組

這正是您需要的東西。 使用jquery grep()函數,通過該函數可以獲得滿足您的條件的元素列表,如下所示:

// Original array
var arr =["select 1", "select 2", "unselect 1"];

// Here, after executing this function your original array will have only
// elements having 1 in them
arr = jQuery.grep(arr, function(value) {
           if(value.indexOf("1") > 0){
              return true;
           }else{
              return false;
           }
      });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM