質問
ExtJSにはExt.each()関数がありますが、map()もどこかに隠されているのでしょうか?
一生懸命努力しましたが、この役割を果たすことができるものは見つかりませんでした。これは、Ext ほど大きな JS ライブラリには明らかに必要な、単純かつ些細なことのように思えます。
または、Ext に実際にそれが含まれていない場合、それを Ext に追加する最善の方法は何でしょうか。確かに、次のように書くこともできます。
Ext.map = function(arr, f) { ... };
しかし、これは本当に正しい方法なのでしょうか?
解決 3
ここの私の大学では ext-basex を使用しているようです。 Array.prototypeをmap()およびその他のメソッドで拡張します。
だから私は書くことができます:
[1, 2, 3].map( function(){ ... } );
問題は解決しました。
他のヒント
少なくともExt4の時点で、Ext.Array.mapが含まれています。
http://docs.sencha .com / extjs / 5.0.1 /#!/ api / Ext.Array-method-map
map
は何よりもユーティリティなので、Extネームスペースにプラグインする特別な方法がある理由はわかりません。提案する方法は十分に機能しますが、そうすることもできます:
if(Ext && typeof(Ext.map) == "undefined") { // only if Ext exists & map isn't already defined
Ext.map = function(arr, f) { ... };
}
そのように思えますが...しかし、私はExtJSを使用しないので、わかりません。私は彼らのドキュメントをじっと見ましたが、この場合に特別なことは何もないようです。
Ext + PrototypeやExt + Jqueryなどのハイブリッドライブラリの1つを使用するのはどうですか。私はしばらくの間Extjs + Prototypejsを使用していますが、乗り心地に合わせてより使い慣れたprototypejsを使用することでExtjsコードに取り組むことができました。
http://extjs.com/products/extjs/build/ はビルドされますextjsおよび(prototypejs | jquery | yahooUI)を実行するために必要なすべてのファイルのカスタムtar / zipファイル。
ExtJS は JavaScript 言語自体を置き換えるものではありません。配列関数は ExtJS コアの焦点ではありません。ただし、特別な Ext.Array オブジェクト タイプがあります。自分で拡張することもできます。
編集:Ext.Array ではなく、Array オブジェクトを拡張しただけです。