اذهب إلى المحتوى

السؤال

نشر

لدي الاخراج التالي

[
            {
                "id": 23,
                "who": [
                    {
                        "id": 1,
                        "user": {
                            "id": 9,
                            "username": "zorro",
                            "first_name": "Richard",
                            "last_name": "Zorro",
                            "avatar": "http://localhost:8000/media/default.png",
               
                        },

                        "approved": false
                    },
                    {
                        "id": 2,
                        "user": {
                            "id": 10,
                            "username": "mis2",
                            "first_name": "m",
                            "last_name": "s",
                            "avatar": "http://localhost:8000/media/default.png",
                        },
  
                        "approved": true
                    }
                ],
                "approved_looking": true,
                "who_add": 1
            }
        ],

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

        filteredUsers() {
            if (this.users) { 
                const filt = this.users.filter(x => x.who.filter((y) => {return y.approved === true}));
                return filt
}
        },

 

Recommended Posts

  • 0
نشر

الدالة filteredUsers لا تقوم بالتحقق من شرط approved بشكل صحيح لأنك تستعمل filter بداخل filter ولحل المشكلة تستطيع إستخدام find داخل filter وكما يلي

function filteredUsers(users) {
  if (users) { 
    const filt = users.filter(x => 
      x.who.find((y) => y.approved === true) !==undefined // هنا يتم العثور وإرجاع المستخدمين المطابقين للشرط
    );
    return filt
  }
}

ملاحظة: تم إزالة this من الكود الأصلي لغرض التجريب ويمكنك التصرف بإعادة الدالة كما كانت مع الأخذ بنظر الإعتبار التغيير الذي عملناه لتعمل معك بشكل صحيح

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...