이 영역과 관련된 다른 비슷한 질문이 있지만 그 중 아무 것도 대답하지 못했다는 것을 알고 있습니다. 내 경우에는 다음 코드가 있고 내림차순으로 레코드 배열을 점수로 정렬하려고합니다.속성 '점수'를 읽을 수 없습니다. 정의되지 않음
function score(string, pattern){
string = string.toLowerCase();
pattern = pattern.toLowerCase();
var position = 0;
var count = 0;
while (true) {
var index = string.indexOf(pattern, position);
if (index == -1) break;
count++;
position = index + 1;
}
return(count);
}
function urlScores(web, pattern){
var records = {};
var results = [];
var n = 0;
for(var i = 0; i < web.length; i++){
n = score(web[i].content, pattern);
if(n != 0){
records.url = web[i].url;
records.score = n;
results[results.length] = {url: records.url, score: records.score};
}
}
return(JSON.stringify(results));
}
function rankedScores(web, pattern){
results = JSON.parse(urlScores(web, pattern));
var temp = 0;
var tempUrl = '';
while(counter < results.length){
for(var i in results){
numbers[numbers.length] = results[i].score;
if(results[i].score < results[i + 1].score){
temp = results[i].score;
tempUrl = results[i].url;
results[i] = {url: results[i+1].url, score: results[i+1].score};
results[i + 1] = {url: tempUrl, score: temp};
}
}
counter++;
}
alert(JSON.stringify(results));
}
가장 마지막 기능은 나에게 문제가되는 것입니다. 사용자가 다음을 실행하는 경우 :
var web = [{url : "www.southampton.ac.uk", 콘텐츠 : "Southampton University는 학위 프로그램과 세계 수준의 연구 시험을 제공합니다." }, {url : "www.xyz.ac.uk", 내용 : "대안 대학 시험 테스트 테스트"}, {url : "www", content : "또 다른 대학 시험"}];
득점 스코어 (web, 'test');
내림차순으로 동일한 배열을 출력해야합니다. 대신 나는 정의되지 않은 속성 '점수'를 읽을 수 없습니다. 아무도 내가 잘못 간 곳을 볼 수 있습니까?
덕분에
또한 .sort()를 사용할 수 없습니다! rankedScores
에서
! 어떻게 고칠 수 있는지 알 겠어! 나는 그것을 해결하려고 시도하는 이전의 시도 였고 필요하지 않은 것처럼 '숫자'를 삭제했다. 매우 도움이된다! – air6199
당신은 환영합니다 ... –