Discuss / JavaScript / 打卡交作业

打卡交作业

Topic source

1.利用reduce()求积:

function product(arr) {
    returnarr.reduce(function(x,y){ return x*y})
}

2.练习:不要使用JavaScript内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数:

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

3.请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam','LISA', 'barT'],输出:['Adam','Lisa', 'Bart']。

function normalize(arr) {
return arr.map(function get_norm(x) {return x.slice(0,1).toUpperCase()+x.slice(1).toLowerCase();});
}

4. 小明希望利用map()把字符串变成整数

var arr = ['1', '2', '3'];
var r;
r = arr.map((x)=>parseInt(x));
console.log(r);

小明做法不成功的原因:每次送入parseInt()的有3个元素:element, index和array本身。parseInt本身是有2个参数的:string和radix,所以element和index纳入了函数运算,array被抛弃了。parseInt(‘1’,0)表示1的数字值所以输出是1。parseInt(‘2’,1)返回NaN因为radix是2到32之间的整数不能是1。parseInt(‘3’,2)也是NaN因为2进制下没有3这样的表达。我们的修改是通过明确定义只有一个元素用于函数计算(element)。


  • 1

Reply