-1

我正在使用以下代码来获取特定的索引值,但现在它会显示 a 但我希望它可以显示所有具有字符 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链接

http://jsfiddle.net/Pescf/7/

4

3 回答 3

0

鉴于字符位于字符串开头的新要求:

http://jsfiddle.net/jeffshaver/Pescf/26/


如果您需要跟踪当前数组元素,最好的方法可能是迭代整个数组,而不仅仅是数组中具有字符的元素数。

在 for 循环中,只需检查当前项目中是否包含字符:http: //jsfiddle.net/jeffshaver/Pescf/13/


我想我明白了...尝试替换return v == char;return v.indexOf(char) !== -1. 目前 count 只等于 1,所以它不会做你想要的。改变它会导致计数等于 5,得到你想要的结果(我认为)。

return v == char不起作用的原因是因为您正在测试完整的字符串是否等于单个字符,该字符只存在一次。

相反,indexOf将检查字符串是否包含字符。

于 2013-04-02T10:52:05.397 回答
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

于 2013-04-02T10:59:06.927 回答
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
于 2013-04-02T11:03:21.233 回答