2016-08-08 7 views
1

indexOfを使用せずにリストに文字列が含まれているかどうかを確認する方法はありますか?私の配列では、一部の文字列に他の文字列の一部が含まれる可能性があるため、indexOfは誤検出を引き起こします。Javascriptリストに文字列が含まれています

例として、「コンポーネント」が下の配列に含まれているかどうかを判断するにはどうすればよいですか?

["component.part", "random-component", "prefix-component-name", "component"] 

更新:

偽陽性の私の使用は誤解だったように思えます。私はそれがコンポーネントが4回そこにあったと言うことを意味し、私はそれ自身で文字列を一致させたいと思った。

ie。以下の配列の "コンポーネント"の存在をチェックするときにはfalseを返すべきです。

["component.part", "random-component", "prefix-component-name"] 
+1

IndexOfメソッドは、あなたの偽陽性を与えることはありません。もしあなたが "otherstuff componenet"を持っているすべての要素を見つけたいのであれば、配列をループして 'String.includes()'で確認することができます。 –

答えて

3

Array.find APIを使用してください。

例:より多くの使用例について

"use strict"; 
 

 
let items = ["component.part", "random-component", "prefix-component-name", "component"]; 
 

 
let found = items.find(item => { return item === "component.part" }); 
 

 
if (found) { 
 
    console.log("Item exists."); 
 
}

を参照してください: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find

+0

"component"を含むすべての要素を探したいと思います。 –

+0

@ YasinYaqoobi質問は少し不明で、単語コンポーネントが含まれているアイテムのエラーを検索する必要があるように聞こえます。私はそれを行う別のソリューションを含めました。下記参照。 –

+0

私は明らかに自分自身を不明瞭にしました。私は、正確な文字列 "component"と一致させたいだけでした。この例では、なぜ単にindexOfを使用できないのかを示すためのものです。 – annedroiid

2

1つの方法は、.find()を使用して、配列から必要な文字列を取得することです。

1

$ .inArray()メソッドを使用してみてください。

var list=["component.part", "random-component", "prefix-component-name", "component"]; 
if($.inArray(" component",list) != -1){ 
    console.log("Item found"); 
} 
0

リストのindexOfを使用せずに文字列が含まれている場合、誰がチェックする方法を知っていますか?私の配列では、一部の文字列に他の文字列の一部が含まれる可能性があるため、indexOfは誤検出を引き起こします。

偽陽性? Array.prototype.indexOfArray.prototype.includesはともに厳密な等価を使用しています。

-1

IndexOfはあなたに偽陽性を与えません。それはあなたに3を与えるでしょう。 "otherstuff componenet"を持つすべての要素を見つけたい場合は、配列をループしてString.includes()でチェックすることができます。

ここは初心者に優しいソリューションです。

var arr = ["component.part", "random-component", 
 
    "prefix-component-name", "component", "asdf"]; 
 
    
 
    console.log(arr.indexOf('component')); // give u 3 
 
    
 
    for (var i = 0; i < arr.length; i++){ 
 
     if (arr[i].includes('component')){ 
 
     console.log(arr[i]); 
 
     } 
 
    }

関連する問題