猿问

求解一道排序算法题

et arr = [1,2,3,4,5,6,6,7,8,9,10,10,10,11,12,12,4,5]

如何通过js 把它切成 [1,2,3,4,5,6] [6,6] [6,7,8,9,10] [10,10,10] [10,11,12] [12,12] [12,4,5]

规则: 1、相邻不同的合为一组; 2、相邻相同的合为一组。


慕姐4208626
浏览 429回答 2
2回答

手掌心

let&nbsp;arr&nbsp;=&nbsp;[1,2,3,4,5,6,6,7,8,9,10,10,10,11,12,12,4,5] let&nbsp;splitArray&nbsp;=&nbsp;function&nbsp;(A)&nbsp;{ &nbsp;&nbsp;let&nbsp;global&nbsp;=&nbsp;[[A[0]]],&nbsp;local&nbsp;=&nbsp;global[0]&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;1;&nbsp;i&nbsp;<&nbsp;A.length;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;let&nbsp;p&nbsp;=&nbsp;local[local.length&nbsp;-&nbsp;1],&nbsp;pp&nbsp;=&nbsp;local[local.length&nbsp;-&nbsp;2]&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(A[i]&nbsp;===&nbsp;p&nbsp;&&&nbsp;(p&nbsp;===&nbsp;pp&nbsp;||&nbsp;!pp)&nbsp;||&nbsp;A[i]&nbsp;!==&nbsp;p&nbsp;&&&nbsp;p&nbsp;!==&nbsp;pp)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local.push(A[i]) &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local&nbsp;=&nbsp;[A[i&nbsp;-&nbsp;1],&nbsp;A[i]] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global.push(local) &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;}&nbsp;&nbsp;return&nbsp;global } console.log(splitArray(arr))

拉风的咖菲猫

let&nbsp;arr&nbsp;=&nbsp;[1,&nbsp;2,&nbsp;3,&nbsp;4,&nbsp;5,&nbsp;6,&nbsp;6,&nbsp;7,&nbsp;8,&nbsp;9,&nbsp;10,&nbsp;10,&nbsp;10,&nbsp;11,&nbsp;12,&nbsp;12,&nbsp;4,&nbsp;5]//结果二维数组let&nbsp;result&nbsp;=&nbsp;[[]]//结果二维数组最后的索引let&nbsp;resultLastIndex&nbsp;=&nbsp;0//当前&nbsp;不同&nbsp;0&nbsp;/&nbsp;相同&nbsp;1&nbsp;标示let&nbsp;currentFlag&nbsp;=&nbsp;0arr.forEach((item,&nbsp;index)&nbsp;=>&nbsp;{&nbsp;&nbsp;let&nbsp;r&nbsp;=&nbsp;result[resultLastIndex]&nbsp;&nbsp;let&nbsp;compare&nbsp;=&nbsp;r[r.length&nbsp;-&nbsp;1]&nbsp;&nbsp;if&nbsp;(item&nbsp;!==&nbsp;compare)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(currentFlag&nbsp;===&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r.push(item) &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentFlag&nbsp;=&nbsp;0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.push([arr[index&nbsp;-&nbsp;1],&nbsp;item]) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultLastIndex++ &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(currentFlag&nbsp;===&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;currentFlag&nbsp;=&nbsp;1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result.push([arr[index&nbsp;-&nbsp;1],&nbsp;item]) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultLastIndex++ &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r.push(item) &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;} })console.log(result)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答