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