JS学習に深く入る配列オブジェクトの並べ替え操作例
本論文の実例は、JSの深く勉強する配列オブジェクトの並べ替え機能を述べている。皆さんに参考にしてあげます。具体的には以下の通りです。
JavaScriptは多次元配列、対象配列の順序付けを実現しています。実用的なのは元のsort()方法で、配列の要素を並べ替えるために使われています。
sort()メソッドは配列の要素を並べ替えるために使用されます。文法は以下の通りです
arrayObject.sort(sortby)
は、行列への参照です。配列は元の配列で並べ替えられ、コピーは生成されません。
この方法を呼び出したときにパラメータが使用されていない場合は、配列内の要素をアルファベット順に並べ替えます。より正確な点は文字コードの順序で並べ替えられます。この点を達成するには、まず配列の要素を文字列に変換して比較します。
他の基準にしたがって並べ替えたい場合は、比較関数を提供する必要があります。この関数は2つの値を比較して、この2つの値の相対的な順序を説明するための数字を返します。比較関数は2つのパラメータaとbを持つべきで、その戻り値は以下の通りである。 aがbより小さい場合、順序付けされた配列の中でaはbより前に現れるべきであり、0より小さい値を返す。 aがbに等しいなら、0を返します。 aがbより大きいと0より大きい値を返します。
数字の大きさを比較しないなら、このようにしても良いです。
オブジェクト配列の並べ替えに対して、まず比較関数を構成する関数を書きます。
この時、私達は更にby関数を修正して、第二のパラメータを受け入れるようにします。主要なキーの値が一致すると、もう一つのcompre方法が呼び出されて決められます。
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
PS:ここでは並べ替えに関するデモンストレーションを紹介します。
オンラインアニメーションのデモ挿入/選択/発泡/帰結/ヒル/高速ソートアルゴリズムプロセスツール:
http://tools.jb51.net/aideddesign/paixu_システム
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScript配列操作技術のまとめ」、「JavaScriptソートアルゴリズムのまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」および「JavaScriptエラーとデバッグテクニックのまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。
JavaScriptは多次元配列、対象配列の順序付けを実現しています。実用的なのは元のsort()方法で、配列の要素を並べ替えるために使われています。
sort()メソッドは配列の要素を並べ替えるために使用されます。文法は以下の通りです
arrayObject.sort(sortby)
は、行列への参照です。配列は元の配列で並べ替えられ、コピーは生成されません。
この方法を呼び出したときにパラメータが使用されていない場合は、配列内の要素をアルファベット順に並べ替えます。より正確な点は文字コードの順序で並べ替えられます。この点を達成するには、まず配列の要素を文字列に変換して比較します。
他の基準にしたがって並べ替えたい場合は、比較関数を提供する必要があります。この関数は2つの値を比較して、この2つの値の相対的な順序を説明するための数字を返します。比較関数は2つのパラメータaとbを持つべきで、その戻り値は以下の通りである。
function NumAscSort(a,b)
{
return a - b;
}
function NumDescSort(a,b)
{
return b - a;
}
var arr = new Array( 3600, 5010, 10100, 801);
arr.sort(NumDescSort);
alert(arr);
arr.sort(NumAscSort);
alert(arr);
sort(fun)は並べ替え規則関数を受け入れています。この関数は2つの数字の大きさを比較します。私達の対象配列は並べ替えられています。実際の原理も同じです。数字の大きさを比較しないなら、このようにしても良いです。
var myarray=["Apple", "Banana", "Orange"]
myarray.sort()
配列はSOrt()を直接呼び出した後、配列はアルファベット順に配列中の要素を並べ替えます。より正確な点を言って、文字コードの順序で並べ替えられます。オブジェクト配列の並べ替えに対して、まず比較関数を構成する関数を書きます。
//by
//
var by = function(name){
return function(o, p){
var a, b;
if (typeof o === "object" && typeof p === "object" && o && p) {
a = o[name];
b = p[name];
if (a === b) {
return 0;
}
if (typeof a === typeof b) {
return a < b ? -1 : 1;
}
return typeof a < typeof b ? -1 : 1;
}
else {
throw ("error");
}
}
}
並べ替えする配列:
var employees=[]
employees[0]={name:"George", age:32, retiredate:"March 12, 2014"}
employees[1]={name:"Edward", age:17, retiredate:"June 2, 2023"}
employees[2]={name:"Christine", age:58, retiredate:"December 20, 2036"}
employees[3]={name:"Sarah", age:62, retiredate:"April 30, 2020"}
直接呼び出し関数:
employees.sort(by("age"));
ここでは、オブジェクト配列の並べ替えが基本的に実現されています。どのように複数のキーを並べ替えますか?意味は最初にageを並べ替えることです。もしageが同じなら、nameを比較します。この時、私達は更にby関数を修正して、第二のパラメータを受け入れるようにします。主要なキーの値が一致すると、もう一つのcompre方法が呼び出されて決められます。
//by
//
// o[age] p[age] ,
var by = function(name,minor){
return function(o,p){
var a,b;
if(o && p && typeof o === 'object' && typeof p ==='object'){
a = o[name];
b = p[name];
if(a === b){
return typeof minor === 'function' ? minor(o,p):0;
}
if(typeof a === typeof b){
return a < b ? -1:1;
}
return typeof a < typeof b ? -1 : 1;
}else{
thro("error");
}
}
}
employees.sort(by('age',by('name')));
はい、今は安心して使えます。読めないなら、直接にcopyというby関数をあなたのアプリケーションに呼び出してもいいです。興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
PS:ここでは並べ替えに関するデモンストレーションを紹介します。
オンラインアニメーションのデモ挿入/選択/発泡/帰結/ヒル/高速ソートアルゴリズムプロセスツール:
http://tools.jb51.net/aideddesign/paixu_システム
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「JavaScript配列操作技術のまとめ」、「JavaScriptソートアルゴリズムのまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」および「JavaScriptエラーとデバッグテクニックのまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。