给定下面的整数数组(列表),我希望提取每个整数,如果三个或更多整数连续上升,我想用" - "替换中间整数来表示一个范围.然后最后将值作为字符串返回.
例如,列表中的前7个整数:-6, -3, -2, -1, 0, 1, 3
将变为'-6,-3-1,3'
因为从-3到1有超过三个连续的整数.
最终,solution(list)应该返回以下字符串:"-6,-3-1,3-5,7-11,14,15,17-20"
在其当前形式中,它返回以下字符串:"-6,-3,-2,-1,0,1,3,4,5,7,8,9,10,11,14,15,17,18,19,20"
这只是转换为字符串的数组.
var list = [-6, -3, -2, -1, 0, 1, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 17, 18, 19, 20];
solution(list);
function solution(list) {
final = [];
range = [];
while (list.length > 0) {
take = list.splice(0,1);
range.push(take);
n = 1;
while (take+n === list[0]) {
a = list.splice(0,1);
range.push(a);
n++;
}
if (range.length >= …Run Code Online (Sandbox Code Playgroud)