हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की एक सरणी लेता है और मूल सरणी से दो तत्वों का एक उप-सरणी देता है जिसका योग 0 के सबसे करीब है।
यदि सरणी की लंबाई 2 से कम है, तो हमें पूरी सरणी वापस कर देनी चाहिए।
उदाहरण के लिए:यदि इनपुट ऐरे है -
const arr = [4, 4, 12, 3, 3, 1, 5, -4, 2, 2];
यहाँ, युग्म [5, 4] का योग 1 है जो सरणी के किन्हीं दो आसन्न तत्वों के लिए निकटतम 0 है, इसलिए हमें [5, 4]
लौटना चाहिए।उदाहरण
निम्नलिखित कोड है -
const arr = [4, 4, 12, 3, 3, 1, 5, -4, 2, 2]; const closestElements = (arr, sum) => { if(arr.length <= 2){ return arr; } const creds = arr.reduce((acc, val, ind) => { let { closest, startIndex } = acc; const next = arr[ind+1]; if(!next){ return acc; } const diff = Math.abs(sum - (val + next)); if(diff < closest){ startIndex = ind; closest = diff; }; return { startIndex, closest }; }, { closest: Infinity, startIndex: -1 }); const { startIndex: s } = creds; return [arr[s], arr[s+1]]; }; console.log(closestElements(arr, 1));
आउटपुट
कंसोल में आउटपुट निम्नलिखित है -
[5, -4]