1. ホーム
  2. javascript

[解決済み] TypeScriptで配列に文字列が含まれているかどうかを確認するには?

2022-03-22 22:54:04

質問

現在、Angular2.0を使用しています。以下のような配列を持っています。

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

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

どのように解決するのですか?

JavaScriptと同じように Array.prototype.indexOf() :

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

またはECMAScript 2016を使用する Array.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'}]

参考文献

Array.find()

Array.some()

Array.filter()