【发布时间】: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