Discuss / JavaScript / 交作业啦

交作业啦

Topic source

练习2

var arr = [];
for(let i of s){
arr.push(i);
}
arr = arr.map(function(x){
return x-'0';
});
return arr.reduce(function(x,y){
return x*10+y;
});

练习3

 return arr.map(function(s){
return s.substring(0,1).toUpperCase() + s.substring(1).toLowerCase();

});

阿集jim

#2 Created at ... [Delete] [Delete and Lock User]
for(let i of s){
arr.push(i);
}
arr = arr.map(function(x){
return x-'0';
});

这个代码可以简化为

for(let i of s){
arr.push(i-'0');
}

iridiumcao

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

你对练习2的解答很巧:

var arr = [];
for(let i of s){
   arr.push(i-'0');
}
return arr.reduce(function(x,y){
   return x*10+y;
});

我的解答是这样的:

        var arr = s.split('');
        return arr.map(function (x) {
            return x.charCodeAt(0) - 48;
        }).reduce(function (x, y) {
                    return x * 10 + y;
                }
        )

主要差别是在对单个字符所对应的数字值的计算方式上。你用 i-'0', 这个太漂亮了。我解答时,专门去查了ASCII表,最后找到减48合适,但这可读性比你的差很多。

1条大汉

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

单个字符从str到int,除了可以-0也可以*1的


  • 1

Reply