配列を初期化することなく、この種の関数を記述するよりエレガントな方法はありますか?
function getStuff () {
var some_array= [];
$("#some-id ul li span.key").each(function() {
some_array.push($(this).text());
});
return some_array;
}
配列を初期化することなく、この種の関数を記述するよりエレガントな方法はありますか?
function getStuff () {
var some_array= [];
$("#some-id ul li span.key").each(function() {
some_array.push($(this).text());
});
return some_array;
}
function getStuff () {
return $.map($("#some-id ul li span.key"), function(el) {
return $(el).text();
});
}
パフォーマンスに関しては、違いは最小限です。また、Lix が指摘したように、より読みやすく保守しやすい方法を選択してください。最終的に、どちらも配列を作成し、要素を反復処理し、文字列値を配列にプッシュして、配列を返します。
これを行うためのもう1つのより機能的な方法は次のとおりです。
「メソッド」関数を定義します。
var method = function (method) {
return function (item) {
return $(item)[method]();
};
};
次のように使用できます。
var text = method('text');
var html = method('html');
var fadeIn = method('fadeIn');
getStuff
関数を作り直すには:
var getText = function (arr) {
return $.map(arr, text);
};
$.map
から返された関数を適用して、渡された配列を反復処理します。var text = method('text')
これは、 の実行です$(array item).method()
。
これらの種類のテクニックを使用する方法を示すために、これをまとめただけです。おそらく別の名前を付けて、「メソッド」関数をアプリ全体で使用するためのカスタム ライブラリ/ヘルパーとして定義するでしょう。