2016-11-14 10 views
4

私は非常にです。コーディング時に新しいこと、JavaScriptでさらに新しい場合。私は基本的なコースをいくつかやりましたが、私自身の課題を通して学び始めようとしています。私はこの質問が答えられたかどうかを調べようとしましたが、同様のものは見つかりませんでした。誰かがこの回答を見つけることができれば、私に教えてください!関数内で番号付き配列を並べ替える

数字のリストを(配列として)取り、それを最小から最大までソートする関数を記述しようとしています。私はsort()が数値を正しくソートしていないことを理解しているので、私はいくつかのグーグルに基づいてこの関数を書こうとしています。ここで

は、私が持っているものだと私はステップ欠けているように、正直なところ、それは感じている:

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

を私は構文エラーを取得しています。私は、ソートが起こるようにインナー関数を介して入力(リスト)をどのように渡すかを理解するのに問題があります。

ここで何が間違っているのか詳しい説明はありますか?私は数字をソートするのに役立つことがわかった関数であまりにも堅実ではないように感じる。

ありがとうございます!

+1

あなたの機能を終了していません。 '}'を最後に追加します –

+1

あなたは閉じた '}'括弧がありません。また、 'sort()'は数値をソートできないと思いますか? – Timo

+0

彼は、デフォルトの動作が '3'の前に' 12'を置くと言っています – Feathercrown

答えて

2

あなたが必要とするのは、2つの要素とそれらの関係のすべてのチェックの値を返す正しいコールバックです。順序に応じて、0より小さいかゼロより大きいか0より大きい値です。

さらに詳しい情報はArray#sortをご覧ください。

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

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

 
console.log(array);

2

ソート直接アレイ上で使用され、最初に行くかを決定するために関数に渡します。これを試してください:初心者レベルのため

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));

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); 
関連する問題