Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ดัชนีอาร์เรย์ที่ทำให้ผลรวมสมดุลใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม arr เป็นอาร์กิวเมนต์เดียว

ฟังก์ชันต้องเลือกและคืนค่าดัชนีหนึ่งจากอาร์เรย์ ที่ทำให้ผลรวมขององค์ประกอบทางด้านซ้ายเท่ากับผลรวมขององค์ประกอบทางด้านขวา หากไม่มีดัชนีดังกล่าว เราควรคืนค่า -1

ตัวอย่างเช่น หากอินพุตคือ

อินพุต

const arr = [1, 2, 3, 4, 3, 2, 1];

เอาต์พุต

const output = 3;

คำอธิบายเอาต์พุต

เพราะผลรวมขององค์ประกอบทั้งสองข้างของดัชนี 3 เท่ากัน (6)

ตัวอย่างโค้ด

const arr = [1, 2, 3, 4, 3, 2, 1];
const balancingIndex = (arr = []) => {
const findSum = arr => arr.reduce((acc, x) => acc + x, 0);
for (let i = 0; i < arr.length; i++) {
const leftSum = findSum(arr.slice(0, i));
const rightSum = findSum(arr.slice(i + 1));
if (leftSum === rightSum) {
return i;
};
};
return -1;
};
console.log(balancingIndex(arr));

ผลลัพธ์

3