2017-10-21 80 views
0

我工作在JavaScript中聊天机器人,我有一个名为“目标”变量,它是将包含用户说,在聊天什么变量,以及所谓的“doingGood”的数组:如何检查目标变量是否在数组中?

let doingGood = ["good", "great", "amazing", "awesome"];

我想做的是,我想做一个if语句,如果目标变量等于在doingGood数组中的字符串,它将执行一些操作。例如,如果目标等于好的,好的,惊人的或令人敬畏的,那就去做点什么吧。我在网上浏览过,但我很难过,似乎也找不到答案。帮助将不胜感激,谢谢!

编辑:问题是一样的,但我尝试了他们在那里建议的方法,他们似乎并没有工作。当我尝试if (variable.target === doingGood)时,它给了我一个错误,说“变量未定义”。

+1

'的indexOf收作方法初探doingGood .indexOf(搜索)> -1'。 ES6版本,'doingGood.includes(搜索)' – Rajesh

+0

'doingGood.includes(myString)' – Li357

+0

这个问题不同于“重复”。这个问题是问如何使用一个数组作为一个集合。另一个问题是,函数如何告诉给定对象的类型---特别是它是一个数组还是不是一个数组。 –

回答

0

你可以使用数组的 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

如果(doingGood.indexOf(目标)!== -1){

//做点什么

}

+0

只是一个指针。它很难回答重复。如果你知道这个解决方案,并且它很常见,那么之前就有很大的可能性。既然你知道这个问题,你更有可能找到它。所以你应该寻找这样的帖子,并将其粘贴为评论(*,直到你没有足够的代表关闭自己*)。 – Rajesh