第一题:输入一段只含有数字和字符串的字符串,则取出各个数字,获得最大值。
function num (str) {
var numArr = str.match(/\d+/g);
var max = numArr[0];
for (var i = 1; i < numArr.length; i++) {
if (numArr[i] > max) {
max = numArr[i]
}
}
}
num ('adsf102dsfa234dfas2345dfg234')
第二题:
输入n个数字,这n个数字不能重复,如果有连续的数字,则使用类似1-4的方法表示,没有,则直接表示。
function line (arr) {
var result = [];
var tmp;
// 将连续的归为一组,不连续的各归为一组,组别是一个数组表达
while(tmp = arr.shift()){
if(result.length == 0){
result.push([tmp]);
continue;
}
var e = result[result.length - 1];
// 若连续
if(tmp == e[e.length - 1] + 1) {
e.push(tmp);
}else{
result.push([tmp]);
}
}
console.log(result);
for(var i = 0; i < result.length;i++) {
if (result[i].length>=3) {
var len = result[i].length;
result[i] = result[i][0] + '-' + result[i][len-1];
}else {
result[i] = result[i].join(',')
}
}
console.log(result.join(','))
}
line([1,2,4,5,6,8,9,10,11])
网友评论