var arr = array[1, 2, 3, 5];
/*
* "1-3,5"という文字列に変える
*/
function arr2str(arr) {
var str = '';
var len = null;
var cnt = 0;
arr.sort(function(a, b) { return a - b; });
for (var n = 0; n < arr.length; n++) {
if (arr[n] + 1 == arr[n + 1]) {
if (len == null) {
ren = arr[n];
}
++cnt;
continue;
}
if (str) {
str += ',';
}
if (len != null) {
str += len + ((cnt == 1) ? ',' : '-');
len = null;
cnt = 0;
}
str += arr[n];
}
return str;
}
/*
* "1-3,5"を1,2,3,5の配列に変える
*/
function str2arr(str) {
var tmp = str.split(",");
arr = Array();
for (var n = 0; n < tmp.length; n++) {
if (tmp[n].indexOf("-", 0) != -1) {
rng = tmp[n].split("-");
if (rng.length != 2) {
return false;
}
if (rng[0] == '' || rng[1] == '') {
return false;
}
st = Number(rng[0]);
ed = Number(rng[1]);
for (var i = st; i <= ed; i++) {
arr.push(i);
}
} else {
if (tmp[n] == '') {
return false;
}
arr.push(Number(tmp[n]));
}
}
arr = uniqArray(arr);
return arr;
}
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme