const getAllSubsets = array => array.reduce((pre, cur) => pre.concat(pre.map(item => [...item, cur])) , [[]]) console.log(getAllSubsets([1,2,3])); // [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] // 如果箭头函数带{}则切记要记得return出去 // const getAllSubsets = (array) => { // return array.reduce((pre, cur) => { // return pre.concat(pre.map((item) => { // return [...item, cur]; // })) // }, [[]]) // } // console.log(getAllSubsets([1,2,3])); // [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]