如果使用Javascript匹配数组中任何值的任何字符,如何从数组中搜索数据

时间:2013-04-02 10:44:41

标签: javascript html arrays

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

3 个答案:

答案 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

See Demo

<强>更新

请参阅下面的演示,为搜索引擎提供搜索字符串,以便您方便地优化代码。

Demo 2

答案 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