Javascript 如何将字符串数组筛选为包含特定字符的字符串数组?

Javascript 如何将字符串数组筛选为包含特定字符的字符串数组?,javascript,atom-editor,Javascript,Atom Editor,我正在尝试对数组(如[“hello”,“hi”,“bye”])进行特定字符(如“h”)的筛选,以便它返回一个新数组,该数组仅包含具有该字符的字符串([“hello”,“hi”,“bye”]->[“hello”,“hi”]) 这是我目前的代码giveSOFT出于某种原因返回[] 函数giveSOFT(输入,字符){ var length=input.length 变量子列表=[] var word=“” var w=“小便” for(设i=0;i

我正在尝试对数组(如
[“hello”,“hi”,“bye”]
)进行特定字符(如“h”)的筛选,以便它返回一个新数组,该数组仅包含具有该字符的字符串(
[“hello”,“hi”,“bye”]
->
[“hello”,“hi”]

这是我目前的代码
giveSOFT
出于某种原因返回
[]

函数giveSOFT(输入,字符){ var length=input.length 变量子列表=[] var word=“” var w=“小便” for(设i=0;i 我不明白为什么或如何解决这个问题,所以任何建议都将不胜感激

以下是我的具体操作说明:

创建一个包含两个参数的函数:单词列表和字母。函数应在参数中创建并返回列表的子列表。子列表应仅包含原始列表中包含作为第二个参数传递的字母的单词。 使用.indexOf()查找作为参数传递的字母是否在word中,如果是-将其推送到新列表,如果不是-跳过


您没有将任何内容推送到
子列表
,也不需要第二个for循环。此外,您的返回在for循环中,而不是函数的结尾

函数giveSOFT(输入,字符){ 变量子列表=[] 变量词 for(设i=0;i-1)子列表推送(word) } 返回子列表 } 变量输入=[“小便”、“wii”、“ww”、“iiwi”、“iii”、“小便”] var char=“w”
log(giveSOFT(输入,字符))您没有将任何单词推送到子列表。您可以使用indexOf函数检查每个单词是否包含特定的字符。 如果找到字符,则返回索引;如果未找到,则返回-1

函数giveSOFT(输入,字符) { let sublist=[] for(设i=0;ilog(giveSOFT(输入,字符))
[]
表示空数组。在您的例子中,这是
子列表
,您将其初始化为
[]
,但从未修改,只是在函数末尾返回。
input.filter(word=>word.indexOf(char)!=-1)
这是否回答了您的问题?您可以删除不必要的变量。非常感谢。我觉得我只是在做傻事,我已经工作了几个小时,我的大脑就死掉了。我想:pA代码唯一的答案并不是一个好答案,它不能解释问题是什么,也不能解释呈现的代码是如何解决的。只需添加一个描述,@Scott Marcus。