راکت
حل شده

اند و ایف در for

1 پاسخ

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

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',],
      ];

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

محمد
محمد
@mohammadalavi
ثبت پرسش جدید

پاسخ‌ها

1
آرش یدی
آرش یدی
@dark25eye

تخصص: توسعه سیستم های شبکه

بهترین پاسخ

سلام! امیدوارم حال شما هم خوب باشه.
برای چک کردن این شرط، می‌خواهیم بررسی کنیم که آیا آرایه 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 برمی‌گردونه

شاید پاسخ شما همین‌جا باشد

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

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