Discuss / JavaScript / 第二题答案

第二题答案

Topic source

缄默潜心

#1 Created at ... [Delete] [Delete and Lock User]

function string2int(s) { return s.split("").map(function(x){return +x;}).reduce(function(x,y){ return x*10+y; });;
} ////思路:1、切割字符串成为一个一个字符; 2、把切割好的字符数组转换成数值; 3、那转换好的数值数组变为一个整体数字

东程11017

#2 Created at ... [Delete] [Delete and Lock User]

思路不错,赞!

s.split("").map(function(x){return +x;})

为什么{return +x;} 在x的前面加了个“ + ”就能把字符数组转换成了数值?

这是利用了Javascript弱类型的特点。例如x='5',前面加'+',就相当于将其变为正数5,如果你写成-x,就会返回负数-5。你可以把+x改为-(-x),一样能通过,就是这个原因。

function sing2int(s) { if(s != undefined) { var arr = new Array(); for(var x in s) { arr.push(+s[x]); } return arr.reduce(function(x, y) { return x * 10 + y; })

            }
            return null;
        }

  • 1

Reply