jQuery-通过多维数组进行部分查询搜索

jQuery-通过多维数组进行部分查询搜索,jquery,search,multidimensional-array,partial,Jquery,Search,Multidimensional Array,Partial,有人能帮我吗?我不熟悉jQuery 我有一个如下所示的数组: //classcCars = [Year, Car Name, Owner's Name] var classcCars = [ [1927, "Ford Model T", "Brian"], [1969, "Corvette Sting Ray", "Larry"], [1967, "Ford Mustang", "John"], [1969, "Camaro SS", "Samantha"],

有人能帮我吗?我不熟悉jQuery

我有一个如下所示的数组:

//classcCars = [Year,  Car Name,  Owner's Name]
var classcCars = [
    [1927, "Ford Model T", "Brian"],
    [1969, "Corvette Sting Ray", "Larry"],
    [1967, "Ford Mustang", "John"],
    [1969, "Camaro SS", "Samantha"],
    [1967, "Volkswagen Beetle"],
    [1964, "Porsche 911", "Michael"],
    [1962, "Maserati 3500", "Loren"],
    [1967, "Ford GT40", "Sarah"]
];
我想要一个jQuery函数,它可以遍历“classicCars”数组(只在[1][2]部分搜索汽车名称和车主名称),并使用部分字符串返回汽车和车主的相应年份和名称。例如,打电话:

findCars("Porsche");
应返回:

<p>Michael Porsche 911 - 1964</p>
应返回以下内容:

<p>Brian owns a Ford Model T - 1927</p>
<p>Larry owns a Corvette Sting Ray - 1969</p>
<p>John owns a Ford Mustang - 1967</p>
<p>Michael owns a Porsche 911 - 1964</p>
<p>Loren owns a Maserati 3500 - 1964</p>
<p>Sarah owns a Ford GT40 - 1967</p>
布莱恩拥有一辆福特T-1927型车

拉里拥有一辆轻巡洋舰斯汀雷-1969

约翰拥有一辆福特野马-1967

迈克尔拥有一辆保时捷911-1964

罗兰拥有一辆玛莎拉蒂3500-1964

莎拉拥有一辆福特GT40-1967

有人能帮帮我吗?我不知道如何在jQuery中对多维数组进行部分搜索

谢谢。

试试这个:

function searchArr( keyword ) {

  var retVal = [];

  for( var i = 0; i < classcCars.length; i++ ) {
    for( var j = 0; j < classcCars[ i ].length; j++ ) {
      if( String( classcCars[ i ][ j ] ).toLowerCase().indexOf( String( keyword ).toLowerCase(), 0 ) != -1 ) {
        retVal.push( classcCars[ i ] );
      }
    }
  }
  return retVal;
}
函数搜索arr(关键字){
var-retVal=[];
对于(变量i=0;i
(抱歉之前的打字错误)

这只是为您指明了正确的方向-函数将返回一个数组,其中只包含classcCars数组中包含关键字的元素

JSFIDLE上的Se示例:

这里:

var findCars = (function () {
    function found( str, substr ) {
       return str && substr && str.indexOf( substr ) > -1;
    }

    return function ( arr, term ) {
        return arr.filter( function ( elem ) {
            return found( elem[1], term ) || found( elem[2], term );
        }).map( function ( elem ) {
            return template({ name: elem[2], car: elem[1], year: elem[0] });
        }).join( '' );
    };
}());
我正在使用把手模板:

<script id="template" type="text/x-handlebars-template">
    <p>{{name}} {{car}} - {{year}}</p>
</script>

现场演示:

谢谢MTDK,我的问题是,是否会进行部分搜索,所以“或”将显示“福特”和“罗兰”?很抱歉,但您的代码不起作用。请看这里:
<script id="template" type="text/x-handlebars-template">
    <p>{{name}} {{car}} - {{year}}</p>
</script>
var html_string = findCars( classcCars, 'Porsche' );