目前我使用的是Angular 2.0。我有一个数组如下:

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

如何在TypeScript中检查channelArray是否包含字符串' 3 '?


当前回答

这样做:

departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
            return;
    }

其他回答

这样做:

departments: string[]=[];
if(this.departments.indexOf(this.departmentName.trim()) >-1 ){
            return;
    }

你可以使用some方法:

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

你可以使用find方法:

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

或者你可以使用indexOf方法:

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

TS有许多数组的实用方法,这些方法可以通过数组的原型得到。有多种方法可以实现这一目标,但最方便的两种方法是:

array . indexof()接受任意值作为参数,然后返回数组中给定元素所在的第一个下标,如果不存在则返回-1。 include()接受任何值作为参数,然后确定数组是否包含this值。如果找到值,方法返回true,否则返回false。

例子:

const channelArray: string[] = ['one', 'two', 'three'];

console.log(channelArray.indexOf('three'));      // 2
console.log(channelArray.indexOf('three') > -1); // true
console.log(channelArray.indexOf('four') > -1);  // false
console.log(channelArray.includes('three'));     // true

你也可以使用滤镜

this.products = array_products.filter((x) => x.Name.includes("ABC"))

还要注意,“in”关键字对数组不起作用。它只对对象有效。

propName in myObject

数组包含测试为

myArray.includes('three');