在弄清楚这有什么问题时遇到了一些麻烦。看看其他解决方案之一,但它是针对问题的不同版本。
John Resig Advanced Javascript Question
具体来说,参考旧问题,由于在此问题之前,教程中的resig根本没有使用“原型”或“切片”,我想知道是否有不同的解决方案。
http://ejohn.org/apps/learn/#43
这是问题的当前文本:
function highest(){
return arguments.sort(function(a,b){
return b - a;
});
}
assert(highest(1, 1, 2, 3)[0] == 3, "Get the highest value.");
assert(highest(3, 1, 2, 3, 4, 5)[1] == 4, "Verify the results.");
我也很难理解为什么回归中的“b - a”。当改为b或只是a时,它仍会通过所有测试。
答案 0 :(得分:0)
使用sort函数引用您的问题。如果将第一个断言中的数字顺序更改为:
assert(highest(3, 1, 1, 2)[0] == 3, "Get the highest value.");
然后返回a或返回b将不再起作用。他们使用当前的断言只是巧合。
排序函数应该返回
所以b-a按降序返回数字。
如果你进入John Resig教程的下两页(#44和#45),你会看到他引入了一个makeArray函数(http://ejohn.org/apps/learn/#45)来解决将参数集合转换为数组的问题。