Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按用户对2个AJAX请求创建的连接数组进行排序';什么是搜索词?_Javascript_Jquery_Json_Ajax_Sorting - Fatal编程技术网

Javascript 如何按用户对2个AJAX请求创建的连接数组进行排序';什么是搜索词?

Javascript 如何按用户对2个AJAX请求创建的连接数组进行排序';什么是搜索词?,javascript,jquery,json,ajax,sorting,Javascript,Jquery,Json,Ajax,Sorting,我有一个输入框,用户可以在其中键入搜索词 <input type="text" class="searchbox" placeholder="Search here"> 数组包含基于在每个map()中创建的结构的对象。 这些对象具有属性标签和值 您正在查找不存在的a[1]和b[1],这就是您未定义的原因 因此,排序应该查看这些对象的属性并比较实际值,而不是indexOf() 在回答“规范化案例以优化排序”时忘了提及,但在代码中应该清楚这并不是很相关,但由于您之前提供了帮助,您是否碰

我有一个输入框,用户可以在其中键入搜索词

<input type="text" class="searchbox" placeholder="Search here">

数组包含基于在每个
map()
中创建的结构的对象。 这些对象具有属性
标签

您正在查找不存在的
a[1]
b[1]
,这就是您未定义的原因

因此,排序应该查看这些对象的属性并比较实际值,而不是
indexOf()


在回答“规范化案例以优化排序”时忘了提及,但在代码中应该清楚这并不是很相关,但由于您之前提供了帮助,您是否碰巧知道此列表更新不够频繁的原因?例如,如果您键入“external”,您会得到一个很好的列表,但如果您通过在查询中添加“Sunshine”来进一步缩小搜索范围,则建议根本不会改变。可疑api是关于空间编码方式的特定信息。检查文档。是否在可在浏览器开发工具网络中检查的响应中返回“未找到电影”此数组来自何处?需要更多的细节。(我看到你删除了所有代码)
var results1 = [];
var results2 = [];
var combine = [];

$(".searchbox").autocomplete({
    source: function(request, response) {   
        $.when(GetGames(request), GetMovies(request)
        ).done(function(){
            combine = results2.concat(results1);                  

            /* 
            combine.sort(function(a, b){
                return b[1].indexOf(request.term) - a[1].indexOf(request.term);
            });
            */

            response(combine);    
            }
        )
    }
});

function GetMovies(request) {
    return $.ajax({
        'url': 'http://www.omdbapi.com/?s=' + 
                request.term +
                '&type=movie&r=json',
        'dataType': 'json',
        'success': function(data) {
            var list = data.Search;

            results1 = $.map(list, function(v,i){
                return {
                    label: v.Title + ' (' + v.Year + ')',
                    value: v.Title
                };
            })
        }
    });
}


function GetGames(request) {              
    return $.ajax({
        type: "POST",
        url: "php/phpscript.php?search=" + request.term, 

        dataType: "xml", 
        success: function(xmlResponse) {                            
            results2 = $("Game", xmlResponse).map(function() {
                return {
                    value: $("GameTitle", this).text() + ", G " + ($.trim($("ReleaseDate", this).text()) || "(unknown date)")
                };
            }).get()                           
        } 
    });
}
combine.sort(function(a, b){
    return b.value.toLowerCase() > a.value.toLowerCase();
});