समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की दो सरणियों, arr1 और arr2, को पहला और दूसरा तर्क के रूप में लेता है।
arr1 और arr2 में तत्वों का योग अलग है। हमारे फ़ंक्शन को पहली सरणी से एक तत्व चुनकर दूसरी सरणी में डालना चाहिए और दूसरी सरणी से एक तत्व चुनकर पहली सरणी में डालना चाहिए ताकि दोनों सरणियों के तत्वों का योग बराबर हो जाए। हमें इन दो तत्वों की एक सरणी वापस करनी चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const arr1 = [1, 2, 5]; const arr2 = [2, 4];
आउटपुट
const output = [5, 4];
आउटपुट व्याख्या
क्योंकि यदि हम 5 को arr1 से हटाकर arr2 में डालते हैं और 4 को arr2 से हटाकर arr1 में डालते हैं तो दोनों सरणियों का योग बराबर हो जाएगा (7)।
उदाहरण
const arr1 = [1, 2, 5];
const arr2 = [2, 4];
const balanceArrays = (arr1 = [], arr2 = []) => {
const sumA = arr1.reduce((acc, v) => acc + v, 0);
const sumB = arr2.reduce((acc, v) => acc + v, 0);
const difference = (sumA + sumB) / 2 - sumA;
const map = arr2.reduce((acc, v) => {
acc[v] = true;
return acc;
}, {});
for (let i = 0; i < arr1.length; i++) {
if (map[arr1[i] + difference] === true) {
return [arr1[i], arr1[i] + difference];
}
}
return [];
};
console.log(balanceArrays(arr1, arr2));
आउटपुट
[5, 4]