用 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

更新于: 22-Apr-2021

471 次浏览

开启您的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.