给定一个数组 返回所有相邻相加和为10的搭配

    1. function arrFn (arr, target) { // arr传入数组 target目标和
    2. let j = 0,
    3. sum = 0,
    4. resArr = [],
    5. result = [];
    6. while (j < arr.length) {
    7. if (arr[j] > target) { // 值超了 pass 组合数组置空
    8. j++;
    9. resArr = [];
    10. } else { // 求和
    11. sum = sum + arr[j];
    12. resArr.push(j); // 把搭配推入数组
    13. if (sum > target) { // 超了 和减去组合数组的第一个
    14. sum = sum - arr[resArr.shift()];
    15. } else if (sum === target) { // 相等 把组合数组推入结果数组
    16. let arrCopy = JSON.parse(JSON.stringify(resArr)); // 深拷贝
    17. result.push(arrCopy);
    18. sum = sum - arr[resArr.shift()];
    19. }
    20. j++; // 角标右移
    21. }
    22. }
    23. return result;
    24. }