我一直在尝试不同的方式来跳出框框来思考这个问题,但由于某种原因我无法得到它。
function sortByLength(array) {
for(var i = 0; i < array.length; i++) {
for(var n = 0; n < array.length; n++) {
array.sort(function(i, n) {
return i.length - n.length;
});
}
}
return array;
}
console.log(sortByLength(["Hello", "Cheese", "Bye"]));
//expecting ["Bye", "Hello", "Cheese"]
我想我正在尝试弄清楚:
1. 为什么会是无限循环?
2. 为什么我不能简单地传入 i 和 n 的循环值,然后比较它们以按长度排序?
如果我能得到任何线索或帮助,我将不胜感激。谢谢!
最佳答案
你实际上并不需要for循环
。 i
和 n
循环变量与排序函数使用的 i
和 n
参数不同,因此您可以有效地对数组 array.length
平方次进行排序。
只需写:
function sortByLength(array){
array.sort(function(i, n){
return i.length - n.length;
});
return array;
}
console.log(sortByLength(["Hello", "Cheese", "Bye"]));
关于javascript - 将一个数组作为参数进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46616594/