jQuery-通过多维数组进行部分查询搜索
有人能帮我吗?我不熟悉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"],
//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' );