محمد
2 هفته پیش توسط محمد مطرح شد
1 پاسخ

اند و ایف در for

سلام. امیدوارم حالتون عالی باشه.
من آرایه زیر رو به عنوان آرایه اصلی دارم.

features= [
               '6776c2ea484f9fcf986bc607',
               '6776c2fc484f9fcf986bc61b',
               '6776c2f3484f9fcf986bc611',
               '6776c2e0484f9fcf986bc5fd',
               '6776c36e484f9fcf986bc663',
               '6776c378484f9fcf986bc66d',
               '6776c4d7484f9fcf986bc77b'
            ],

یه آرایه زیرمجموعه هم دارم که اینه

const sub_features = [
         ['6776c2e0484f9fcf6bc5fd', '6776c2d5484f9fcf9865f3'],
         ['84sa6d8f46s8d4f6sd6f84', '80as6df468as408a46df48', '70as4df468as401a46df48'],
         ['6776c4e6484f9fcf986bc785'],
      ];

میخوام این شرط رو چک کنم که آیا آرایه اصلی، حداقل یه عضو از sub_features[0] و یه عضو از sub_features[1] و یه عضو از sub_features[2] رو داره یا نه.

نکته مهم هم این هستش که آرایه sub_features تعداد مشخصی عضو نداره. یعنی میتونه به این صورت باشه

const sub_features = [
         ['84sa6d8f46s8d4f6sd6f84', ],
         ['6776c4e6484f9fcf986bc785','80as6df468as408a46df48',],
      ];

راهکارش چی هست؟
ممنون بابت پاسختون...


ثبت پرسش جدید
آرش یدی
تخصص : امنیت بک اند
@dark25eye 1 هفته پیش مطرح شد
0

سلام! امیدوارم حال شما هم خوب باشه.
برای چک کردن این شرط، می‌خواهیم بررسی کنیم که آیا آرایه features حداقل یک عضو از هر زیرآرایه در sub_features داره یا نه.

با توجه به اینکه تعداد اعضای زیرآرایه‌های sub_features متفاوت است، می‌تونیم از یک حلقه برای بررسی هر زیرآرایه استفاده کنیم و برای هر زیرآرایه، بررسی کنیم که آیا حداقل یکی از اعضاش در آرایه features وجود داره.

در اینجا یک کد جاوا اسکریپت برای انجام این کار آوردم:

const features = [
   '6776c2ea484f9fcf986bc607',
   '6776c2fc484f9fcf986bc61b',
   '6776c2f3484f9fcf986bc611',
   '6776c2e0484f9fcf986bc5fd',
   '6776c36e484f9fcf986bc663',
   '6776c378484f9fcf986bc66d',
   '6776c4d7484f9fcf986bc77b'
];

const sub_features = [
   ['6776c2e0484f9fcf6bc5fd', '6776c2d5484f9fcf9865f3'],
   ['84sa6d8f46s8d4f6sd6f84', '80as6df468as408a46df48', '70as4df468as401a46df48'],
   ['6776c4e6484f9fcf986bc785'],
];

// تابع برای چک کردن شرط
function checkSubFeatures(features, sub_features) {
   // برای هر زیرآرایه از sub_features چک می‌کنیم که آیا حداقل یکی از اعضاش در features وجود داره
   return sub_features.every(subArray => 
      subArray.some(item => features.includes(item))
   );
}

const result = checkSubFeatures(features, sub_features);
console.log(result);  // اگر true باشد یعنی شرط برقرار است، در غیر این صورت false خواهد بود.

توضیح کد:
every: این متد برای بررسی همه زیرآرایه‌های sub_features استفاده میشه. در حقیقت چک می‌کنه که برای هر زیرآرایه، حداقل یکی از اعضا در آرایه features وجود داشته باشه.
some: این متد برای هر زیرآرایه استفاده میشه تا چک کنه که آیا حداقل یکی از اعضای آن زیرآرایه در features پیدا می‌شود یا نه.
includes: برای چک کردن وجود یک عضو خاص در آرایه features.
نتیجه:
اگر آرایه features حداقل یک عضو از هر یک از زیرآرایه‌های sub_features داشته باشه، تابع checkSubFeatures true برمی‌گردونه.
در غیر این صورت false برمی‌گردونه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام