【问题标题】:Object javascript error [duplicate]对象javascript错误[重复]
【发布时间】:2013-12-09 19:03:39
【问题描述】:

我的代码有问题,过去 2 天我一直无法弄清楚。

 /**
 * 
 *///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]

非常感谢!

【问题讨论】:

  • 有什么问题?它正在准确地提醒您的要求。预期的结果是什么?
  • 你要的是数组本身,而不是它的内容,所以这就是你得到的。
  • 您不应该发布与上一个问题完全相同的问题,尤其是当您似乎在另一个问题上取得进展时。你在这里所做的只是重新开始,让人们感到困惑,甚至可能让你自己感到困惑。

标签: javascript object


【解决方案1】:

这一行:

alert(scoresArray);

不好。您正在告诉 alert() 输出整个数组,但它不知道如何输出整个数组。

创建一个循环来遍历 scoreArray 并以这种方式输出。

【讨论】:

  • 抱歉,我是 javascript 新手,您介意澄清一下您的意思吗
  • 您正在以这种方式写入数组:scoresArray[a]...您需要以相同的方式读取它。你需要 alert(scoresArray[0]),..alert(scores[scoresArray.length-1])
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 2014-01-15
相关资源
最近更新 更多