Underscore: يمكن أن يؤدي التصفية على الكائنات إلى إرجاع كائن

تم إنشاؤها على ١ نوفمبر ٢٠١١  ·  8تعليقات  ·  مصدر: jashkenas/underscore

أهلا،

فيما يلي حالة استخدام شائعة للتصفية. منح

a = {35: true, 45: true, 55: false}

يرغب المرء في التصفية واستعادة أزواج فقط ما هي القيمة الحقيقية:

_.filter(a, function(val, key) {
  val === true;
});
// => {35: true, 45: true}

حاليًا ، وظائف مثل دفع المرشح (القيمة) بحيث يحصل المرء على مصفوفة.

هل هناك أي طريقة سهلة لتحقيق ذلك من خلال حل بديل ، وإذا لم يكن الأمر كذلك ، فهل تفكر في تبديل نوع الإرجاع بناءً على ما إذا كنا نقدم كائنًا أو قائمة؟

change wontfix

التعليق الأكثر فائدة

jk ، لقد رأيت للتو _.pick وهو مثالي لحالة الاستخدام الخاصة بي

ال 8 كومينتر

+1

أنا فقط بحاجة إلى نفس الشيء وكانت هذه المشكلة هي بوابة Google الثانية التي حصلت عليها عند البحث. المشكلة الوحيدة في جعل _.filter على الكائنات التي ترجع الكائنات هي التوافق مع الإصدارات السابقة ...

filter هي وظيفة تنشأ في ES5 ... ونحن بالتأكيد لا نريد كسر التوافق الأساسي مع المواصفات.

لمعالجة الصورة الأكبر: يمكن أن تأخذ كل دالة Underscore.js القابلة للعد كائنات أو مصفوفات ، وجميع المصفوفات المرتجعة. يجب أن يتم كسر الاتساق هنا لجميع الوظائف في وقت واحد ، وليس واحدة منها فقط. تسمح لك API الحالية بتكوين وظائف Underscore دون الحاجة إلى القلق بشأن أنواع الإدخال.

لقد أضفت وظائف التصفية والرفض إلى وظائف خريطة تتبع جوهر المزيج هذه للكائنات ذات الثبات / المفتاح / الصمام:

https://gist.github.com/3430971

+1

+1 هل يمكنكم يا رفاق إضافة _.filterObj (إلخ) واحدًا تلو الآخر ، على غرار _.mapObj ؟

jk ، لقد رأيت للتو _.pick وهو مثالي لحالة الاستخدام الخاصة بي

jtfairbank بالضبط ما أحتاجه وربما ما يحتاجه معظم الناس عندما يأتون إلى هنا بحثًا عن "تصفية" كائن وإنشاء كائن.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

clouddueling picture clouddueling  ·  3تعليقات

Francefire picture Francefire  ·  5تعليقات

umarfarooq125 picture umarfarooq125  ·  8تعليقات

arypbatista picture arypbatista  ·  3تعليقات

zackschuster picture zackschuster  ·  5تعليقات