سلام. امیدوارم حالتون عالی باشه.
من آرایه زیر رو به عنوان آرایه اصلی دارم.
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',],
];
راهکارش چی هست؟
ممنون بابت پاسختون...
سلام! امیدوارم حال شما هم خوب باشه.
برای چک کردن این شرط، میخواهیم بررسی کنیم که آیا آرایه 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 برمیگردونه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟