Javascript 给定一个整数数组‘;num’;返回递增1的数组
给定一个整数数组,返回一个原始值递增1的新数组 数组中的每个值不能超过9,并且不能使用任何函数将数组转换为整数 i、 e:Javascript 给定一个整数数组‘;num’;返回递增1的数组,javascript,arrays,for-loop,increment,Javascript,Arrays,For Loop,Increment,给定一个整数数组,返回一个原始值递增1的新数组 数组中的每个值不能超过9,并且不能使用任何函数将数组转换为整数 i、 e: Original Array = [1,2,7,9] Returned Array = [2,3,8,0] @参数(数组)num @返回(数组) 这就是我目前正在做的事情。只是想知道是否有更有效的方法 function increment (num) { for (var i = num.length - 1; i >= 0; i--) {
Original Array = [1,2,7,9]
Returned Array = [2,3,8,0]
@参数(数组)num@返回(数组) 这就是我目前正在做的事情。只是想知道是否有更有效的方法
function increment (num) {
for (var i = num.length - 1; i >= 0; i--) {
num[i]++;
if (num[i] > 9) num[i] = 0;
else break;
}
return num;
}
console.log(increment([1, 2, 7, 9]));
有一个问题:如果输入数组是由所有9组成的,那么您希望得到所需的输出,例如,
[1,0,0,0]
(而不是[0,0,0]
):
函数增量(num){
对于(变量i=num.length-1;i>=0;i--){
num[i]++;
if(num[i]>9){
num[i]=0;
如果(i==0){
//上一次迭代,但我们需要进行-unshift a 1:
取消移位数(1);
}
}
否则就断了;
}
返回num;
}
log(增量([1,2,7,9]);
log(增量([3,9,9,9]);
log(增量([9,9,9,9]);
log(增量([1,1,1,1])代码>有点晚了,但这里有一个递归版本,如果参数是[9,9,9,9]
,则会出现相同的边缘大小写问题
函数增量(数组,索引=NaN){
if(isNaN(索引)){
index=array.length-1;
}
如果(++数组[索引]%10==0){
数组[索引]=0;
增量(数组,--索引);
}
返回数组;
}
日志(增量([1,2,7,9]))
log(递增([9,9,9,9]))
在您的示例中,为什么不递增1和2?因为我们希望将数组作为一个数字递增,所以这里的数字是1279。Icrement得到1280,作为数组返回[1,2,8,0],然后执行1+parseInt(arr.join(“”))
。然后你可以把它分开again@JohnRuddell他说没有数组到intconversion@bryan60啊,你还是可以作弊的,但这看起来更像是一个面试问题,所以可能应该仔细检查并增加所需的值。我正要发布这个!(处理边缘案件)比我快