获取数组中特定值的数组 发表于 2018-06-11 | 更新于: 2021-03-03 | 分类于 代码集 | | 阅读次数: 字数统计: 200字 | 阅读时长 ≈ 1分钟 有如下题目:根据指定元素,在数组里面找出类数组。比如数组 [2, 3, 5, 7] ,指定元素 5,则类数组是 [2,, 3] 和 [5],因为上面两个数组的元素之和相加为5。自己想了一下, 实现方法如下:1234567891011121314151617181920212223242526/**** description 得到** arr 传入的数组** value 得到的类数组的值** maxLen 类数组的最大长度**/function compile(arr, value, maxLen = arr.length) { if (!arr.length || !value) return; let result = []; let tempArr = []; const len = arr.length; let nowIndex = 0; while (nowIndex < len) { if (tempArr.length > 0) { let temp = []; for (let item of tempArr) { temp.push([...item, arr[nowIndex]]); } tempArr = [...tempArr, ...temp]; } tempArr.push([arr[nowIndex]]); nowIndex++; } result = tempArr.filter(arr => (arr.reduce((pev, now) => (pev = pev + now) && pev, 0) === value) && (arr.length <= maxLen) ); return result;} 实现的效果如下:1compile([1, 2, 3], 5) // [2, 3]