function occurrence(string,substring) {
var counter = 0;
var sub = substring.toLowerCase();
var str = string.toLowerCase();
var array = []
var ans;
for (var i = 0; i < str.length; i++) {
if (str.indexOf(sub) != -1) {
array[counter] = str.indexOf(sub);
counter += 1;
ans = array.length
alert(array); //tester to see inside array
} else {
ans = 0;
}
}
return ans
}
alert(occurrence("Party arty art","art")) //tester to see function in action
在上面显示的测试器中,它应该打印出 3。但是使用我的代码,它会打印出字符串的长度。我正在尝试将“艺术”出现在字符串中的位置的索引存储在数组中,以便我可以打印出数组以给出出现次数。但是,当我警告循环内的数组时,它只会打印出“1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1”。
注意:我正在尝试使用尽可能少的内置函数来编写此代码。我是 javascript 的新手,所以非常感谢一些指导。
我也试图在没有 .match() 的情况下写这个