我使用以下代码来获取特定的索引值,但现在它将显示但我希望它可以显示所有具有字符a的索引值 就像我们搜索一样
var con = document.getElementById('data');
var char = 'a';
var str = '';
var ad = ['abc', 'a', 'call', 'all', 'ded', 'ee', 'aee'];
var count = ad.filter(function (v) {
return v == char;
}).length;
for (var i = 0; i < count; i++)
str += char;
alert(str);
con.innerHTML = str;
这里是jsfiddel链接
答案 0 :(得分:0)
鉴于新要求角色位于字符串的开头:
http://jsfiddle.net/jeffshaver/Pescf/26/
如果你需要跟踪当前数组元素,最好的办法可能就是遍历整个数组,而不仅仅是数组中具有该字符的元素数。
在for循环中,只需检查当前项是否包含其中的字符:http://jsfiddle.net/jeffshaver/Pescf/13/
我想我明白了......尝试用return v == char;
替换return v.indexOf(char) !== -1
。目前只计数等于1,所以它不会做你想要的。改变这个将使计数等于5,得到你想要的结果(我认为)。
return v == char
不起作用的原因是因为您正在测试完整字符串是否等于单个字符,该字符只存在一次。
相反,indexOf
将检查字符串是否包含字符。
答案 1 :(得分:0)
试试这个
var con = document.getElementById('data');
var char = 'a';
var str = '';
var ad = ['ali', 'bbc', 'call', 'a', 'd', 'eaa', 'ab'];
for (var i = 0; i < ad.length; i++)
if (ad[i].indexOf(char) != -1)
str += ad[i] + "<br/>";
con.innerHTML = str+'\n
<强>更新强>
请参阅下面的演示,为搜索引擎提供搜索字符串,以便您方便地优化代码。
答案 2 :(得分:0)
尝试如下,它会帮助你...
更新小提琴: http://jsfiddle.net/Pescf/24/
var con = document.getElementById('data');
var char = 'a';
var str = '';
var ad = ['ali', 'bbc', 'call', 'a', 'd', 'eaa', 'ab'];
var len = ad.length;
for (var j=0; j<len; j++) {
var str = ad[j];
var n=str.indexOf(char);
if (n==0)
con.innerHTML += str + "<br>";
}
它的输出如下......
ali
a
ab