如何解决如何使用 .contains() 或任何其他函数来查看字符串的任何部分是否在数组中
我正在尝试减少代码并使我的代码更简单,因为我的原始方法不是很可读,而且我遇到了很多难以理解的错误,我必须逐字扫描所有代码,因为它们都是一个长线。
假设文本输入是为了
在我的原始代码中,我写道:
//Example : You want to know if any of your favorite games were licensed by Nintendo
var tsf = (The value of a textInput in string form)
tsf.toLowerCase()
//Lets say the textinput said "Name your favorite games"
if(tsf.contains('mario') || tsf.contains('pokemon') || tsf.contains('mortal kombat')||etc,etc) {
Alert.alert('At least one of these games was licensed by Nintendo')
}
这可行,但在实际代码中还有更多“游戏”,它需要列表中的每一项,因为它与我正在从事的健康项目相关。
我的第二个想法是创建一个包含所有元素的数组,然后查看该数组是否包含 tsf
nintendoGames = ['mario','pokemon','mortal kombat','zelda','tetris',etc]
if(nintendoGames.contains(tsf)){
Alert.alert('This game was licensed by Nintendo')
}
这也有效,但前提是 tsf 是单个单词。装箱
tsf = 'mario,zelda'
数组方法不起作用,因为数组只包含 'mario' 和 'zelda' 而不是字符串 'mario,zelda'
我希望能够扫描以查看字符串的 any 部分是否包含 any 数组中的一个元素,到目前为止,只有第一个解决方案有效为我。如果 .contains() 函数中有修改,或者我必须编写某个脚本,那将非常有用。我在网上找不到太多关于此的信息。
我正在使用 expo 开发 React.js 来托管应用程序。
解决方法
首先,我们使用 'split' 将字符串转换为数组。 由于我们使用 ',' 分隔字符串中的游戏,因此您的代码应如下所示:
tsf.split(','); // we receive: ['mario','zelda'].
然后我们使用 'some' 方法检查我们创建的数组中的某些元素是否在 'nintedoGames' 数组中。
const tsf = 'mario,zelda';
const nintendoGames = ['mario','pokemon','mortal kombat','zelda','tetris'];
const result = tsf.split(',').some(game => nintendoGames.includes(game.toLowerCase()));
console.log(result)
\
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。