समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की एक सरणी को पहले और एकमात्र आर्गुमेंट के रूप में लेता है।
हमारे फ़ंक्शन को इनपुट सरणी के आधार पर एक नई सरणी तैयार करनी चाहिए। और इस नई सरणी के प्रत्येक संबंधित तत्व को मूल सरणी में संबंधित तत्व से छोटे तत्वों की संख्या होनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];
तो आउटपुट होना चाहिए -
const output = [2, 4, 0, 1, 2, 1, 0, 0, 0];
आउटपुट व्याख्या:
क्योंकि 4 के दाईं ओर छोटी संख्याएं 2 हैं (1 और 3), 7 के लिए 4 हैं (1, 4, 5, 3) और इसी तरह।
उदाहरण
इसके लिए कोड होगा -
const arr = [4, 7, 1, 4, 7, 5, 3, 8, 9];
const countSmaller = (array = [], num) => array.reduce((acc, val) => {
if(val < num){
acc++;
};
return acc;
}, 0);
const smallerArray = (arr = []) => {
const res = [];
for(let i = 0; i < arr.length; i++){
const el = arr[i];
res[i] = countSmaller(arr.slice(i, arr.length), el);
};
return res;
};
console.log(smallerArray(arr));
आउटपुट
कंसोल में आउटपुट होगा -
[ 2, 4, 0, 1, 2, 1, 0, 0, 0 ]