【发布时间】:2015-09-16 13:45:25
【问题描述】:
假设您输入了Array=[1,2,3,5,7,9,10,11,12,15]
输出应该是1-3,5,7,9-12,15
我正在寻找有关我的尝试和其他可能解决方案的反馈。 这是我在 javascript 中的尝试:
var min = 0;
var max = -1;
function summarize(array) {
var sumString = "";
var prevVal = -1;
array.forEach(function(currVal, index) {
if (index > 0) {
prevVal = array[index - 1];
}
if (index === 0) {
min = currVal;
max = currVal;
} else if (currVal - prevVal === 1) {
max = currVal;
} else if (min !== max && max !== -1) {
sumString += min + "-" + max + (index < array.length - 1 ? "," : "");
min = currVal;
max = -1;
} else {
sumString += min + (index < array.length - 1 ? "," : "");
}
if (index === array.length - 1) {
if (max === -1) {
sumString += "," + min;
} else {
sumString += min + "-" + max;
}
}
});
return sumString;
}
【问题讨论】:
-
我觉得你应该看看这个问题stackoverflow.com/questions/27209086/…
标签: javascript arrays algorithm