JS如何实现数组元素与相邻前一项组合生成两两分组二维数组
问题原因
你当前使用的是无重叠的固定长度分块逻辑,每个元素只会被分到一个分组中,自然无法得到相邻元素重叠的分组结果。同时你原始数组的元素是字符串类型,预期输出是数字类型,还需要额外加一步类型转换。
修改后的实现代码
const arr = ["0","22","36","49","54","64","69","82","87","110","115","128","133","143","148","161","166","179","184","197","202","211","216","229","234","246","251","263","268","280","285","297","302","314","319"] function generateOverlapChunk(arr) { // 先将字符串元素统一转为数字类型 const numArr = arr.map(Number) const result = [] // 遍历到倒数第二个元素为止,每个元素和后一位元素组成配对分组 for (let i = 0; i < numArr.length - 1; i++) { result.push([numArr[i], numArr[i+1]]) } // 最后追加仅包含末尾元素的单独分组 result.push([numArr[numArr.length - 1]]) return result } const chunked = generateOverlapChunk(arr)
结果验证
运行后输出的结果完全符合要求:
[[0,22],[22,36],[36,49],[49,54]...[314,319], [319]]
内容的提问来源于stack exchange,提问作者Kobayashi
相关产品推荐
相关产品推荐

