Как проверить, содержит ли массив строку в TypeScript?



В настоящее время я использую угловой 2.0. У меня есть массив следующим образом:



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


Как я могу проверить в TypeScript, содержит ли channelArray строку 'three'?

805   2  

2 ответов:

то же самое, что и в JavaScript, используя массив.прототип.indexOf ():

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

или с помощью ECMAScript 6 массив.прототип.включает в себя():

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'}]

ссылка

массив.найти()

массив.некоторые()

массив.filter ()

можно использовать метод:

console.log(channelArray.some(x => x === "three")); // true

можно использовать найти способ:

console.log(channelArray.find(x => x === "three")); // three

или вы можете использовать метод indexOf:

console.log(channelArray.indexOf("three")); // 2

Comments

    Ничего не найдено.