如何使用数组进行搜索

时间:2013-01-29 00:23:13

标签: javascript jquery arrays filter

如何使用数组javascript按名称和姓氏进行搜索? 每次我搜索以je开头的东西时,div = result都会显示我所有的姓名和姓氏,在这种情况下杰西卡和杰伊;
这将是一个onkeydown事件,对吗?

<input type='text' id='filter' placeholder='search in array'>

这里我打印结果:

<div id='result'></div>

这是我的阵列:

var datos = [ ['Jessica','Lyn',3],
         ['Jhon','Cin',5],
         ['Alison','Peage',1],
         ['Thor','zhov',12],
         ['Jey','hov',32]  
        ];

3 个答案:

答案 0 :(得分:2)

$("#filter").on('keyup', function () {
   var val = $(this).val();
   $("#result").empty();
   $.each(datos, function () {
      if (this[0].indexOf(val) >= 0 || this[1].indexOf(val) >= 0) {
         $("#result").append("<div>" + this[0] + ' ' + this[1] + "</div>");
      }
   });
});

http://jsfiddle.net/MqTBm/

答案 1 :(得分:1)

var $result = $('#result');

$('#filter').on('keyup', function () {
    var $fragment = $('<div />');
    var val = this.value.toLowerCase();
    $.each(datos, function (i, item) {console.log( item[0].toLowerCase().indexOf(val) );
        if ( item[0].toLowerCase().indexOf(val) == 0 ) {
            $fragment.append('<p>' + item[0] + ' ' + item[1] + '</p>');
        }
    });
    $result.html( $fragment.children() );
});

这是小提琴:http://jsfiddle.net/GkWGk/

答案 2 :(得分:1)

简单的答案是在数组上运行for循环检查每个元素。但是,如果你有一个大型数组,这不是一个好主意。索引数组的方法有很多种。从头脑中思考我可能会构建第二个数组,该数组存储作为索引连接的字段,然后是数组引用。因此,您可以循环访问引用对象。找到带字符串比较的条目。获取对真实数组的索引引用。