前端老生

js对数组元素进行组合

javascript中对数组元素的进行组合
获取一个数组,其中元素的所有组合
思路: 
对数组实现一个伪递归,从下标0元素向后循环,直到下标加一等于数组长度时 停止
 

  /**
   *
   * @param _i 开始下标: 0
   * @param arr 需要排列数组
   * @param groupArr 缓存对象: []
   */
groupSplit(_i, arr, groupArr): any {
    // 组合
    const _len = arr.length;
    if (_i + 1 < _len) {
      for (let j = _i + 1; j < _len; j++) {
        console.log(_i, j);
        groupArr.push({src: arr[_i], tar: arr[j]});
      }
      return this.groupSplit(_i + 1, arr, groupArr);
    }
    return groupArr;
}


const grouArr = this.groupSplit(0, [2,4,5], []);
console.log(grouArr);  // [[2, 4], [2, 5], [4, 5]]