对函数内的带编号数组进行排序

时间:2016-11-14 18:23:58

标签: javascript arrays sorting numbers

非常新的编码,甚至更新的Javascript。我已经完成了一些基础课程,并且我试图通过自己的挑战开始学习。我试图搜索这个问题是否得到了解答并且没有找到类似的东西。如果有人能找到这个答案,请告诉我!

我正在尝试编写一个函数,它将获取一个数字列表(作为数组)并将其从最小到最大排序。由于我理解sort()没有正确排序数字,我试图根据我的一些谷歌搜索来编写这个函数。

这就是我所拥有的,老实说,感觉我错过了一步:

var sort= function(list){
    function numberSort (a, b) {
        return a - b;
    };
    numberSort(list);

我收到语法错误。我无法理解如何通过内部函数传递输入(列表),以便进行排序。

有人能提供进一步的解释,说明这里有什么问题吗?我觉得我对我发现的有助于排序数字的功能不太了解。

谢谢!

3 个答案:

答案 0 :(得分:2)

所有你需要的是正确的回调函数,它为每个元素及其关系的检查返回一个值,一个小于零,零或大于零的数字,具体取决于顺序。

您可以查看Array#sort以获取更多信息。

var array = [4, 6, 7, 2, 3, 10, 43, 100];

array.sort(function (a, b) {
    return a - b;
});

console.log(array);

答案 1 :(得分:2)

直接在数组上使用Sort,并传入一个函数来确定哪个先行。试试这个:

var myArray = [1,2,5,3,11,7,458,90000,9001,-53,4,1.546789];
function myFunc(a,b){
  return a-b;
}
console.log(myArray.sort(myFunc));

答案 2 :(得分:0)

初学者级别的简短选择排序示例,希望您会发现它很有用。

var sort = function(list){
function selectionSort(list) {
    for(var i=0;i<list.length-1;i++){
        for(var j=i+1;j<list.length;j++){
        if(list[i]>list[j]){
            var temp = list[j];
            list[j] = list[i];
            list[i] = temp;         
        }}}
    return list;
};
return selectionSort(list);
}

var list = [6,4,2,3,5];
var result = sort(list);
console.log(result);