如何通过添加for循环来重写搜索功能以通过data.games,并在我搜索时添加它说得分?

时间:2014-04-03 15:32:00

标签: javascript jquery ajax api search

$(document).ready(function(){

    var textsearch = "XYZ"

    $.ajax({
            dataType: 'jsonp', //data in jsonp
            contentType: "application/json; charset=utf-8",
            url: 'http://live.nhle.com/GameData/RegularSeasonScoreboardv3.jsonp',
            jsonpCallback: 'loadScoreboard', 
            success: function (data) {
               console.log(data);


if(textsearch)
{
    for (var key in data)
    { 
        if(data[key].hasOwnProperty('htn') && data[key].hasOwnProperty('atn'))
        {
            if((data[key]['htn'].toLowerCase()).indexOf(datasearch.toLowerCase()) != -1 || (data[key]['atn'].toLowerCase()).indexOf(textsearch.toLowerCase())!=-1)
             times ++;
        }
     }
}

alert("Found " + textsearch + " " + times  + " times");

---- 如何重写搜索功能(从if(文本搜索)向下)以使其循环通过data.games并同时记录分数。

http://jsfiddle.net/draditya91/548Az/1/

2 个答案:

答案 0 :(得分:1)

以下是Updated Fiddle

如果匹配并显示

,只需搜索单词并获取分数
 for (var key in text)
    { 
        if(text[key].hasOwnProperty('htn') && text[key].hasOwnProperty('hts'))
        {
            if(text[key]['htn'].toLowerCase().indexOf(textsearch.toLowerCase()) != -1)
            str= text[key]['htn']+ " vs "+ text[key]['atn']+ " score : "+ text[key]['hts']+"-"+text[key]['ats']+"\n";

            if( text[key]['atn'].toLowerCase().indexOf(textsearch.toLowerCase())!=-1)
            str += text[key]['atn'] + " vs "+ text[key]['htn']+ " score : "+ text[key]['ats']+"-"+text[key]['hts'];
        }
     }
    alert(str);

答案 1 :(得分:0)

如果data.games是你可以做的数组

data.games.map(function(e){return e.score}); 

你会得到一系列分数。如果你想要加上所有分数,你可以做...

data.games
.map(function(e){return e.score})
.reduce(function(prev,current){return prev+current});

如果你想要团队和分数

data.games.map(function(game){
    return{
        team1: game.team1Name,
        team2: game.team2Name,
        score: game.score
    }
});

这将为您提供一系列具有团队名称和分数

属性的对象