如何检查数组是否包含 TypeScript 中的字符串?

新手上路,请多包涵

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

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

如何在 TypeScript 中检查 channelArray 是否包含字符串“三”?

原文由 code1 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.3k
2 个回答

与 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()

原文由 baao 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 一些方法

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

您可以使用 查找方法

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

或者您可以使用 indexOf 方法

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

原文由 Nitzan Tomer 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题