functiongetData(arr, restLen) { if (arr.length < restLen) { return [] } let result = [] for (let i = 0; i < arr.length; i++) { const tempArr = arr.filter((ele, index) => i !== index) let list = [] if (restLen <= 1) { list = [[arr[i]]] } else { list = getData(tempArr, restLen - 1).map((item) => [arr[i], ...item]) }
result = [...result, ...list] } return result }
const arr = [1, 2, 3, 4] let list = [] for (let i = 1; i <= arr.length; i++) { list = [...list, ...getData(arr, i)] }