难以从包含字符串的现有数组输出索引数组

时间:2011-11-11 00:07:13

标签: function javascript

所以我正在尝试创建一个基于searchTerm搜索数组的函数。如果数组中的元素包含searchTerm,它应该在MyArray [];中输出 ALL 索引。

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

2 个答案:

答案 0 :(得分:1)

以下是更正后的版本:

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

这里有一个工作演示:http://jsfiddle.net/jfriend00/GDM9R/

我必须解决很多问题:

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

答案 1 :(得分:0)

myArray = colours[i]不会附加到数组中。

myArray.push(a);