समस्या
हमें एक JavaScript फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी को पहले और एकमात्र आर्गुमेंट के रूप में लेता है। हमारे फ़ंक्शन को true वापस करना चाहिए यदि और केवल यदि हम सरणी को तीन गैर-खाली भागों में विभाजित कर सकते हैं जिनके योग समान हों, अन्यथा false।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = [3, 3, 6, 5, -2, 2, 5, 1, -9, 4];
तो आउटपुट होना चाहिए -
const output = true;
आउटपुट व्याख्या
क्योंकि,
3 + 3 = 6 = 5 - 2 + 2 + 5 + 1 - 9 + 4
उदाहरण
इसके लिए कोड होगा -
const arr = [3, 3, 6, 5, -2, 2, 5, 1, -9, 4];
const thirdSum = (arr = []) => {
const sum = arr.reduce((acc, val) => acc + val, 0);
if(!Number.isInteger(sum / 3)){
return false;
};
let count = 0;
let curr = 0;
const target = sum / 3;
for(const num of arr){
curr += num;
if(curr === target){
curr = 0;
count += 1;
};
};
return count === 3 && curr === 0;
};
console.log(thirdSum(arr));
आउटपुट
कंसोल में आउटपुट होगा -
true