TypeScript で配列に文字列が含まれているかどうかを確認するにはどうすればよいですか? 質問する

TypeScript で配列に文字列が含まれているかどうかを確認するにはどうすればよいですか? 質問する

現在、私は Angular 2.0 を使用しています。次のような配列があります。

var channelArray: Array<string> = ['one', 'two', 'three'];

TypeScript で、channelArray に文字列「three」が含まれているかどうかを確認するにはどうすればよいですか?

ベストアンサー1

JavaScriptと同様に、配列.プロトタイプ.indexOf():

console.log(channelArray.indexOf('three') > -1);

またはECMAScript 2016を使用する配列.prototype.includes():

console.log(channelArray.includes('three'));

@Nitzan が示したようなメソッドを使用して文字列を検索することもできます。ただし、通常は文字列配列ではなく、オブジェクトの配列に対してこれを行います。これらのメソッドの方が理にかなっています。たとえば、

const arr = [{foo: 'bar'}, {foo: 'bar'}, {foo: 'baz'}];
console.log(arr.find(e => e.foo === 'bar')); // {foo: 'bar'} (first match)
console.log(arr.some(e => e.foo === 'bar')); // true
console.log(arr.filter(e => e.foo === 'bar')); // [{foo: 'bar'}, {foo: 'bar'}]

参照

配列.find()

配列.some()

配列.フィルター()

おすすめ記事