How do I check whether an array contains a string in TypeScript?
Currently I am using Angular 2.0. I have an array as follows:
var channelArray: Array<string> = ['one', 'two', 'three'];
How can I check in TypeScript whether the channelArray contains a string 'three'?
Solution 1:
The same as in JavaScript, using Array.prototype.indexOf():
console.log(channelArray.indexOf('three') > -1);
Or using ECMAScript 2016 Array.prototype.includes():
console.log(channelArray.includes('three'));
Note that you could also use methods like showed by @Nitzan to find a string. However you wouldn't usually do that for a string array, but rather for an array of objects. There those methods were more sensible. For example
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'}]
Reference
Array.find()
Array.some()
Array.filter()
Solution 2:
You can use the some method:
console.log(channelArray.some(x => x === "three")); // true
You can use the find method:
console.log(channelArray.find(x => x === "three")); // three
Or you can use the indexOf method:
console.log(channelArray.indexOf("three")); // 2
Solution 3:
If your code is ES7 based (or upper versions):
channelArray.includes('three'); //will return true or false
If not, for example you are using IE with no babel transpile:
channelArray.indexOf('three') !== -1; //will return true or false
the indexOf
method will return the position the element has into the array, because of that we use !==
different from -1 if the needle is found at the first position.
Solution 4:
Also note that "in" keyword does not work on arrays. It works on objects only.
propName in myObject
Array inclusion test is
myArray.includes('three');
Solution 5:
Use JavaScript Array includes() Method
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var n = fruits.includes("Mango");
Try it Yourself » link
Definition
The includes() method determines whether an array contains a specified element.
This method returns true if the array contains the element, and false if not.