سؤال

وExtJS ديه وظيفة Ext.each ()، ولكن هناك خريطة () أيضا مخبأة في مكان ما؟

ولقد حاولت بجد، ولكن لم يتم العثور على أي شيء يمكن أن تملأ هذا الدور. ويبدو أن شيئا بسيطا وتافها، أن مكتبة JS كبيرة حتى تحويلة يجب أن يكون واضحا.

وأو عندما تحويلة حقا لا يشمل ذلك، ما من شأنه أن يكون أفضل وسيلة لإضافته إلى تحويلة. بالتأكيد، أنا فقط يمكن أن تكتب:

Ext.map = function(arr, f) { ... };

ولكن هل هذا حقا الطريقة الصحيحة للقيام بذلك؟

هل كانت مفيدة؟

المحلول 3

ويبدو أن بلدي الكليات هنا يستخدمون -تحويلة basex ، التي يمتد Array.prototype مع خريطة () وغيرها من الأساليب.

وهكذا أستطيع أن أكتب فقط:

[1, 2, 3].map( function(){ ... } );

ومشكلة حلها.

نصائح أخرى

واعتبارا من EXT4 على الأقل، يتم تضمين Ext.Array.map.

HTTP: //docs.sencha كوم / extjs / 5.0.1 / #! / المعهد / Ext.Array-طريقة خريطة

ومنذ map هو أكثر من فائدة من أي شيء، وأنا لا أرى لماذا لن يكون هناك أي طريقة خاصة لتوصيله إلى مساحة الاسم تحويلة. ان الطريقة التي تقترح تعمل بشكل جيد بما فيه الكفاية، على الرغم من أنك قد ترغب في القيام بذلك هكذا:

if(Ext && typeof(Ext.map) == "undefined") { // only if Ext exists & map isn't already defined
   Ext.map = function(arr, f) { ... };
}

ويبدو أن من شأنه أن يكون على ما يرام ... ولكن بعد ذلك، وأنا لا تستخدم ExtJS، لذلك أنا لا أعرف. أنا لم تأخذ الاوز في مستندات وأنه لا يبدو أن هناك أي شيء خاص يجب القيام به في هذه الحالة.

وماذا عن استخدام واحدة من المكتبات الهجينة مثل تحويلة + نموذج أو تحويلة + مسج. لقد تم استخدام Extjs + Prototypejs لبعض الوقت الآن، وأنه ساعدني كثيرا للعمل في التعليمات البرمجية Extjs مع وجود prototypejs أكثر دراية على طول للركوب كذلك.

http://extjs.com/products/extjs/build/ ستبني ملف القطران مخصص / الرمز البريدي لجميع الملفات التي تحتاج إلى تشغيل extjs و(prototypejs | مسج | yahooUI).

وExtJS لا تحل محل لغة جافا سكريبت نفسها. وظائف مجموعة ليست في محور ExtJS الأساسية. ولكن هناك هو خاص نوع كائن Ext.Array. يمكنك توسيع ذلك بنفسك.

وتحرير: ليس Ext.Array، ولكن الكائن صفيف فقط الموسعة

.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top