/** * [組合運算] * @param {array} arr [進行組合運算的數組] * @example [1,3,2] * @param {number} num [每幾個元素爲一組] * @return {array} [返回組合集合] * @example [[1,3],[1,2],[3,2]] */ var combo = function(arr, num) { var result = []; var range = function(r, _arr) { if (r.length == num) { result.push(r) } else { let l = r.length; for (var i = 0, len = _arr.length - num + l; i <= len; i++) { range(r.concat(_arr[i]), _arr.slice(i + 1)) } } } range([], arr); return result }