簡體   English   中英

如何檢查數組是否包含 Javascript 中的字符串?

[英]How to check an array if it contains a string in Javascript?

我有一個包含字符串的數組。

var js_userBoxName = new Array();

如果一個字符串有它應該顯示的單詞“foo”,我想搜索數組的元素。

例如,我的數組包含單詞 {foofy, foofa, foo, awtsy},將顯示 foofy、foofa 和 foo,因為它們都包含單詞 foo。

查看Array.filter方法:

var arr = ['foofy', 'foofa', 'foo', 'awtsy'];
var fooItems = arr.filter(function (item) {
    return item.indexOf('foo') >= 0;
});

// Yields ['foofy', 'foofa', 'foo']

鏈接的 MDN 頁面包含不支持它的瀏覽器的 polyfill。 如果您碰巧使用 jQuery,則可以使用$.grep

var arr = ['foofy', 'foofa', 'foo', 'awtsy'];
var fooItems = $.grep(arr, function (item) {
    return item.indexOf('foo') >= 0;
});

注意:良好的性能提示是在迭代數組時始終緩存數組的長度,而不是為每個循環執行重新計算它。 len = js_userBoxName.length

http://jsperf.com/caching-array-length/4

function () {
    for(var i = 0, len = js_userBoxName.length; i < len; i++){
      if(typeof js_userBoxName[i] === 'string'){
        if(js_userBoxName[i].indexOf('foo') == -1)
          return true;
      }
    }
    return false;
}

以下函數應該可以解決問題,它僅使用標准的 acme 腳本元素

function Find (myarray, searchterm){
    for (var i=0, len = myarray.length; i<len; i += 1){
         if (typeof(myarray[i]) === 'string' && myarray[i].search(searchterm) !== -1){
             // print or whatever
             //hint use a callback here that you pass in as an additional arugment
         }
    }
}

如果您需要檢查更復雜的東西,使用搜索允許您使用正則表達式

你也可以試試這個:

 var myarray = ["foofy", "foofa", "foo", "awtsy"]; var searched_string = "foo"; var foundmatch = []; for(i=0; i < myarray.length; i++){ if(myarray[i].match(searched_string)){ foundmatch.push(myarray[i]); } } alert(foundmatch);

以下應該工作:

var myArray = ['foofy', 'foofa', 'foo', 'awtsy'];

for ( var i = 0; i < myArray.length; i++ ) {
  if ( myArray[i].contains('foo') )
    console.log(myArray[i]);
}

印刷品:愚蠢的 foofa foo

注意:“awtsy”不包含模式 foo

暫無
暫無

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

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