हमें एक फ़ंक्शन लिखना है जो उस सबसे निचले सूचकांक को लौटाता है जिस पर एक मान (दूसरा तर्क) को एक सरणी (पहला तर्क) में डाला जाना चाहिए जब उसे सॉर्ट किया गया हो (आरोही या अवरोही क्रम में)। लौटा गया मान एक संख्या होना चाहिए।
उदाहरण के लिए, मान लीजिए हमारे पास getIndexToInsert() फ़ंक्शन है:
getIndexToInsert([1,2,3,4], 1.5, 'asc') को 1 लौटाना चाहिए क्योंकि यह 1 (सूचकांक 0) से बड़ा है, लेकिन 2 (सूचकांक 1) से छोटा है।
इसी तरह,
getIndexToInsert([20,3,5], 19, 'asc') को 2 लौटाना चाहिए क्योंकि एक बार सरणी आरोही क्रम में सॉर्ट हो जाने पर यह [3,5,20] जैसी दिखेगी और 19, 20 (सूचकांक 2) से कम और 5 (सूचकांक 1) से बड़ा है।
आइए इस फ़ंक्शन के लिए कोड लिखते हैं:
उदाहरण
const arr = [20, 3, 5];
const getIndexToInsert = (arr, element, order = 'asc') => {
const creds = arr.reduce((acc, val) => {
let { greater, smaller } = acc;
if (val < element) {
smaller++;
} else {
greater++;
}
return { greater, smaller };
}, {
greater: 0,
smaller: 0
});
return order === 'asc' ? creds.smaller : creds.greater;
};
console.log(getIndexToInsert(arr, 19, 'des'));
console.log(getIndexToInsert(arr, 19));
आउटपुट
कंसोल में आउटपुट होगा:
1 2