Function 从由字符串组成的现有数组中输出索引数组有困难

Function 从由字符串组成的现有数组中输出索引数组有困难,function,javascript,Function,Javascript,因此,我试图创建一个函数,该函数基于搜索项在数组中进行搜索。如果数组中的元素包含searchTerm,它应该输出MyArray[]中的所有索引 我希望我已经解释清楚了,提前谢谢。myArray=colors[I]没有附加到数组中 myArray.push(a); 下面是一个更正的版本: var colours = ["I like the colour red", "I hate the colour yellow", "I love the colour blue"]; function

因此,我试图创建一个函数,该函数基于搜索项在数组中进行搜索。如果数组中的元素包含searchTerm,它应该输出MyArray[]中的所有索引


我希望我已经解释清楚了,提前谢谢。

myArray=colors[I]
没有附加到数组中

myArray.push(a);

下面是一个更正的版本:

var colours = ["I like the colour red", "I hate the colour yellow", "I love the colour blue"];

function myFunction(colours, searchTerm) {
    var myArray = [];
    searchTerm = searchTerm.toLowerCase();

    for (var i = 0; i < colours.length; i++) {
       if (colours[i].toLowerCase().indexOf(searchTerm) >= 0) {
           myArray.push(i);
        }
    }
    return myArray;
}

alert(myFunction(colours,"colour")) //Should return indexes 0,1,2 in myArray
var colors=[“我喜欢红色”,“我讨厌黄色”,“我喜欢蓝色”];
函数myFunction(颜色、搜索项){
var myArray=[];
searchTerm=searchTerm.toLowerCase();
对于(变量i=0;i=0){
myArray.push(i);
}
}
返回myArray;
}
alert(myFunction(colors,“color”)//应在myArray中返回索引0,1,2
这里有一个工作演示:

我必须解决很多问题:

  • 您没有正确地将结果添加到myArray
  • 您没有将索引添加到myArray
  • 您没有正确测试
    .indexOf()
    的结果(不匹配时返回-1)
  • 您迭代的是搜索短语的长度,而不是数组中的项数
  • 您没有将
    i
    声明为局部变量,因此它是一个隐式全局变量

  • .push()
    是将项添加到数组末尾的方式。你为什么要避免这样?看,对不起,我只是想知道是否有其他的方法。谢谢你告诉我哪里出错了。现在我可以从我犯的错误中学习。谢谢有其他方法可以添加到数组的末尾,但是
    .push()
    是最简单的方法。既然我看到你是新来的,你是否意识到StackOverflow的正确礼仪是当/如果答案回答了你的问题,你应该将其标记为“答案”单击所选答案左上角的复选标记?这有助于使它成为更好的资源,也是人们提供答案的激励过程的一部分。