हमें एक JavaScript फ़ंक्शन लिखना है जो पहले और एकमात्र तर्क के रूप में शाब्दिक मूल्यों की एक सरणी लेता है।
फ़ंक्शन को मूल सरणी से बनाए जा सकने वाले सभी संभावित उप-सरणियों की एक सरणी बनाकर वापस करनी चाहिए।
उदाहरण के लिए -
यदि इनपुट सरणी है -
const arr = [1, 2, 3];
तो आउटपुट होना चाहिए -
const output = [
[2],
[1],
[3],
[1,2,3],
[2,3],
[1,2],
[1, 3],
[]
];
उप-सरणियों का क्रम इतना महत्वपूर्ण नहीं है।
उदाहरण
निम्नलिखित कोड देखें:
const arr = [1, 2, 3];
const findAllSubsets = (arr = []) => {
arr.sort();
const res = [[]];
let count, subRes, preLength;
for (let i = 0; i < arr.length; i++) {
count = 1;
while (arr[i + 1] && arr[i + 1] == arr[i]) {
count += 1;
i++;
}
preLength = res.length;
for (let j = 0; j < preLength; j++) {
subRes = res[j].slice();
for (let x = 1; x <= count; x++) {
if (x > 0) subRes.push(arr[i]);
res.push(subRes.slice());
}
}
};
return res;
};
console.log(findAllSubsets(arr));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
[
[], [ 1 ],
[ 2 ], [ 1, 2 ],
[ 3 ], [ 1, 3 ],
[ 2, 3 ], [ 1, 2, 3 ]
]