我的代码出现问题,过去两天我都无法解决问题。
/**
*
*///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 :(得分:1)
这不是错误: 如果你将包含两个对象的数组进行字符串化,那就是假定的输出。