未知的 JavaScript 错误
Unknown Javascript error
>我正在尝试将数组按降序排序。
这是我当前的代码:
for(var i = 0; i < scoresArray.length; i){
function swap(a, b) {
var temp = scoresArray[a].score;
scoresArray[a] = scoresArray[b].score;
scoresArray[b] = temp;
}
for(var x = 0; x < scoresArray.length; x++){
if(scoresArray[x].score < scoresArray[++x].score){
console.log(x);
swap(x, ++x);
}
}
}
return scoresArray.content;
这是输入数组:
[
{ url: 'www.lboro.ac.uk', score: 6 },
{ url: 'www.xyz.ac.uk', score: 3 },
{ url: 'www', score: 8 } ]
这(应该是)输出数组:
[{ url: 'www.xyz.ac.uk', score: 3 },
{ url: 'www.lboro.ac.uk', score: 6 },
{ url: 'www', score: 8 } ]
就像@Douglas说的,使用 array.sort(compareFunction) 使这更容易:
var scoresArray = [
{ url: 'www.lboro.ac.uk', score: 6 },
{ url: 'www.xyz.ac.uk', score: 3 },
{ url: 'www', score: 8 } ];
scoresArray.sort(function(a,b) {
return a.score - b.score;
});
请注意,由于scoresArray[i].score
是数字,因此可以使用return a.score - b.score
。在更一般的情况下(例如,如果它们是字符串),您可以使用
scoresArray.sort(function(a,b) {
if(a.score > b.score) return 1;
if(a.score < b.score) return -1;
return 0;
});
交换函数不起作用,它只用分数数字替换 scoresArray 中的值。同样重要的是要知道 ++x
改变 x
的值 .我想你的意思是x + 1
。
这大致有效:
var scoresArray = [
{ url: 'www.lboro.ac.uk', score: 6 },
{ url: 'www.xyz.ac.uk', score: 3 },
{ url: 'www', score: 8 } ];
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);
}
}
}
console.log(scoresArray);
但是最好使用array.sort:
var scoresArray = [
{ url: 'www.lboro.ac.uk', score: 6 },
{ url: 'www.xyz.ac.uk', score: 3 },
{ url: 'www', score: 8 } ];
scoresArray.sort(function(a, b) {
return b.score - a.score;
});
console.log(scoresArray);
相关文章:
- object响应时出现对象错误javascript
- 未捕获的语法错误:javascript对象上出现意外的标记ILLEGAL
- Phonegap-Android 4.4-html5音频长度错误(javascript和媒体插件)
- 未捕获的语法错误:javascript中出现意外的标记}
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 未捕获类型错误javascript方法
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 解析器错误(Javascript初学者寻找解决方案)
- IE 错误 .JavaScript 运行时错误:对象不支持属性或方法“preventDefault”
- appendChild 不是函数错误 (JAVASCRIPT)
- 错误 JavaScript 函数
- 而循环抛出错误JavaScript
- 意外的类型错误 - Javascript,多维数组
- 语法错误:Javascript 中的意外令牌/将数据发布到 Amazon s3
- 语法错误:Javascript 中缺少指数
- 错误“JavaScript 运行时错误:查找滚动位置时无法获取未定义或空引用的属性'scrollLeft'”
- 错误 JavaScript 循环数组
- 错误:Javascript 上的 [对象对象]
- IndexedDBShim.js错误:JavaScript运行时错误:在严格模式下不允许分配只读属性
- 在Evernote listNotebooks API上获取错误-Javascript/Node.Js