ホームページ > ウェブフロントエンド > jsチュートリアル > js オブジェクト array_javascript の OrderByAsc メソッドと OrderByDesc メソッドを拡張するための実装アイデア

js オブジェクト array_javascript の OrderByAsc メソッドと OrderByDesc メソッドを拡張するための実装アイデア

WBOY
リリース: 2016-05-16 17:33:31
オリジナル
1556 人が閲覧しました

js プロトタイプについてしばらく読んだ後、js の拡張メソッドはプロトタイプに基づいていることがわかりました。たとえば、Array.prototype.XXXX は XXX メソッドを Array に拡張し、すべての配列でこのメソッドを使用できることがわかりました。

オブジェクト配列は属性に従って昇順または降順に並べ替えられることが多いため、C# の orderBy に似たメソッドを作成したいと思いました。コードは次のとおりです。

コードをコピー コードは次のとおりです。 Array.prototype.OrderByAsc = function (func) {
var m = { };
for (var i = 0; i for (var k = 0; k if (this [i ]) < func(this[k])) {
m = this[k] = this[i];
this[i] = m; >}
}
}
これを返します;
}
Array.prototype.OrderByDesc = function (func) {
var m = {}; = 0 ; i for (var k = 0; k if (func(this[i]) > func(this) [k ])) {
m = this[k];
this[i] = m; }
return this;
}


呼び出されるメソッドは次のとおりです:




コードをコピー


コードは次のとおりです:


var arr = [{ name: 'aaa', Grade: 20 }, { name: 'ccc', Grade: 30 }, { name: 'bbb' , グレード: 40 } ];
var orderArr = arr.OrderByDesc(function (a) { return a.grade; }); それを出力して見てください。結果:
コードをコピー


コードは次のとおりです:


for (var i = 0) ; i < orderArr.length ; i ) {
document.write(orderArr[i].name);

アイデアがある場合は、直接メッセージを残してお互いにコミュニケーションしてください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート