JSFiddle - React, Tailwind, and code Playground

by Valentin Sarychev

JavaScript

function f(arr, a) {
  const sums = arr.reduce((acc, item) => [...acc, acc[acc.length - 1] + item], [0]);
  const map = sums.reduce((acc, item, index) => ({...acc, [item]: index}), {});

  for (let i = 0; i < arr.length; ++i) {
    if (map[a]) {
      return arr.slice(i, map[a]);
    }
    a += arr[i];
  }
};

[
	[[], 6],
  [[1], 6],
	[[6], 6],
  [[2, 4], 6],
  [[3, 20, -20, 3], 6],
  [[1, 3, 20, -20, 3, 1], 6],
].forEach(([arr, a]) => {
	console.log(`f([${arr}], ${a}) => ${f(arr, a)}`);
});