我们需要编写一个JavaScript函数,该函数接受带有一些正负值的Numbers数组。我们需要确定原始数组中是否存在净和为0的子数组。
我们的函数应该在此基础上返回一个布尔值。
这里的方法很简单。我们使用for循环遍历数组,计算直至该特定元素的累积和。并且,如果某个点的累计量变为0或达到其先前已达到的值,则存在一个总和为0的子数组。否则,不存在总和为0的子数组。
因此,让我们为该函数编写代码-
const arr = [4, 2, -1, 5, -2, -1, -2, -1, 4, -1, 5, -2, 3]; const zeroSum = arr => { const map = new Map(); let sum = 0; for(let i = 0; i < arr.length; i++){ sum += arr[i]; if(sum === 0 || map.get(sum)){ return true; }; map.set(sum, i); }; return false; }; console.log(zeroSum(arr));
输出结果
控制台中的输出将为-
true