一对JavaScript总和最低的数组的(相邻)元素

我们需要编写一个包含数字数组的JavaScript函数。该函数应返回原始数组中两个相邻元素的子数组,其总和在数组所有相邻对中是最小的。

如果数组的长度小于2,则应返回boolean false。

例如,如果输入数组为-

const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];

在这里,对[-23,1]的和为-22,这是该数组中任何两个相邻元素中最小的,因此该函数应返回[-23,1]

为此的代码将是-

const arr = [41, 44, -12, 13, -23, 1, 5, -4, 2, 2];
const leastSum = arr => {
   if(arr.length <= 2){
      return false;
   };
   const creds = arr.reduce((acc, val, ind) => {
      let { smallest, startIndex } = acc;
      const next = arr[ind+1] ;
      if(!next){
         return acc;
      }
      const sum = val + next;
      if(sum < smallest){
         startIndex = ind;
         smallest = sum;
      };
      return { startIndex, smallest };
   }, {
      smallest: Infinity,
      startIndex: -1
   });
   const { startIndex } = creds;
   return [arr[startIndex], arr[startIndex + 1]];
};
console.log(leastSum(arr));

以下是控制台上的输出-

[-23, 1]