2013-12-09 113 views
-4

我遇到了我的代码问题,在过去的2天中我一直无法弄清楚。对象javascript错误

/** 
* 
*///function 7 
/** 
* returns the number of times that pattern occurs in string 
*/ 
    function score(string,pattern) { 
     var v = string.toUpperCase(); 
     var s = pattern.toUpperCase(); 
     var result = []; 
     for (var i = 0; i < string.length; i++) { 
      var index = v.indexOf(s, i); 
      if (index != -1) { 
       result[result.length]=index; 
       i = index; 
      } 
     } 
     return result.length; 
    } 

    /** 
    * returns an array of records of the form {trackTitle: ..., trackLyrics: ..., trackScore: ...} derived from web. 
    * Each record contains the track title, track lyrics and pattern score of its corresponding content. 
    * 
    * 
    * 
    */ 

    //FUNCTION 9 

    function urlScores(music, pattern) { 
     var scoresArray = []; 
     for(var i = 0; i < music.length; i++) { 
      for(var j = 0; j < music[i].tracks.length; j++){ 
       var itemScore = score(music[i].tracks[j].title, pattern) + score(music[i].tracks[j].lyrics, pattern); 


       if (itemScore > 0) { 
        scoresArray[scoresArray.length] = ({indexOfTrack: j, trackTitle: music[i].tracks[j].title, trackLyrics: music[i].tracks[j].lyrics, trackScore: itemScore, album: music[i]}); 
       } 
       itemScore = 0; 
      } 
     } 
     return scoresArray; 
    } 
    /** 
    * Sorts the result of urlScores() into descending order. 
    * Records with a score of zero are omitted. 
    */ 

    //FUNCTION 10 

    function rankedScores(music, pattern) { 
     var scoresArray = urlScores(music, pattern); 

     function swap(a, b) { 
      var temp = scoresArray[a]; 
      scoresArray[a] = scoresArray[b]; 
      scoresArray[b] = temp; 
     } 

     for(var i = 0; i < scoresArray.length; i++) { 
      for(var x = 0; x < scoresArray.length - 1; x++) { 

       if (scoresArray[x].score > scoresArray[x + 1].score) { 
        swap(x, x + 1); 
       } 
      } 
     } 
     alert(scoresArray); 
    } 

当我用下面的运行:

rankedScores(albums, "sparrow"); 

的专辑变量 - http://pastebin.com/G25SxrwY

错误如下 -

[object Object],[object Object] 

非常感谢您!

+0

有什么问题?它正在提醒你所要求的是什么。什么是预期结果? – Einacio

+0

你正在问阵列本身,而不是它的内容,所以这就是你所得到的。 – RealityDysfunction

+0

你不应该发布你以前的问题的确切副本,尤其是当你在另一个问题上取得进展时。你在这里所做的一切正在重新开始,让人们和潜在的你自己感到困惑。 – ajp15243

回答

0

这条线:

alert(scoresArray); 

没有好。你告诉alert()输出一个完整的数组,但它不知道如何输出一个完整的数组。

创建一个循环以通过scoresArray循环并以此方式输出。

+0

对不起,我是JavaScript新手你是否介意澄清你的意思 – user2964960

+0

你正在以这种方式写入数组:scoresArray [a] ...你需要以相同的方式阅读它。你需要提醒(scoresArray [0]),.... alert(scores [scoresArray.length-1]) – RealityDysfunction