Case 1:
input: 145
output: 146
Case 2:
input 199
output 1001
Case 3:
input: 59
output 501
Case 4:
input: 99
output: 901
所以第一个数字永远不会改变。
原因是第一个数字是分类(1-9)。以下是序列号。
所以199是分类'1'和序列号99.下一个序列号是1001.Henche奇怪的逻辑(我没有决定这个)。
任何聪明的方法吗?
答案 0 :(得分:3)
将数字转换为字符串。获取第一个数字作为字符串的第一个字符,其余数字作为剩余字符。如果其余全部为9,则将其增加到多个0 + 1,否则只需加1即可。然后将其与原始的第一个数字
连接起来
function increment_serial(input) {
var str = input.toString();
var first = str[0];
var rest = str.substr(1);
if (rest.match(/^9+$/)) {
var newrest = rest.replace(/9/g, '0') + '1';
} else {
newrest = parseInt(rest, 10) + 1;
}
return first + newrest;
}
console.log(increment_serial(145));
console.log(increment_serial(199));
console.log(increment_serial(59));
console.log(increment_serial(99));
答案 1 :(得分:0)
有两个变量,前缀和数字:
var prefix = "5";
var number = 99;
var output = prefix + number;
alert(output);
number = number + 1;
output = prefix + number;
alert(output);
答案 2 :(得分:0)
function incrementNumberLeavingFirst(number) {
var numberAsString = number+"";
incrementedNumber = parseInt(numberAsString.slice(1))+1
return parseInt(numberAsString[0]+incrementedNumber);
}
alert(incrementNumberLeavingFirst(599))
我们取一个整数number
作为函数的第一个参数。这是我们想要增加的数字。
在JavaScript中将字符串添加到整数会将整数转换为字符串,因此我们通过向其添加空字符串来获取number
参数的字符串版本,并将其存储在变量{{1}中}。
然后,我们使用numberAsString
除了第一个字符之外的所有字符串,使用numberAsString.slice(1)
将其转换为整数,然后添加一个。这会增加数字(不包括第一个数字)。我们将递增的数字存储在名为parseInt
的变量中。
最后,我们将数字的第一个数字连接到递增的数字(请注意,第一个数字仍然是一个字符串,因此这会将incrementedNumber
转换为字符串,并将第一个数字添加到该字符串的开头然后我们使用incrementedNumber
将整个事物转换为整数,并返回它。