资讯专栏INFORMATION COLUMN

【题目】【9天】map/reduce

leeon / 557人阅读

摘要:题目一利用求积题目二字符串先变成,再利用把字符串转换为的函数。题目三请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。所以第一次接受到的参数是,结果为第二次接受到的参数是,结果为第三次接受到的参数是,结果为

这里题目是来自廖雪峰的教程map/reduce,这两天在学习reduce时老是弄不懂它的参数,做了他里面的几个题目,清晰了很多,当然了我第一次做题目时,完全没头绪,基本是看了下面的评论才理解的,前辈们的博客是很好的学习资料。

题目一:利用reduce求积

var arr = [1,2,3,4,5];
arr.reduce((x,y) => x*y)

题目二:字符串13579先变成Array——[1, 3, 5, 7, 9],再利用reduce()把字符串转换为Number的函数。

var str = "13579";
var a = str.split("");
console.log(a);        // ["1", "3", "5", "7", "9"]

var b = a.map((x) => +x);
console.log(b);       // [1, 3, 5, 7, 9]

var c = b.reduce((x,y) => x*10+y);
console.log(typeof c);       //number

//str.split("").map((x) => +x).reduce((x,y) => x*10+y);

做这题时,自己是看了评论才会,不理解的地方就一步步用console.log()一个个打印出来。评论区里有人说+xx*1是什么意思,其实用console.log()打印出来就知道是啥意思了,就是把字符串变成数字;对于reduce参数的理解:我认为它接受的函数的第一个参数是每次操作的结果,第二个参数是每次操作的内容,不知道可不可以这样理解,reduce的第二个参数是初始值。

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

function normalize(arr) {
    return  arr.map((x) => {
        return x.charAt(0).toUpperCase() + 
        x.slice(1).toLowerCase();
    });
}

charAt()从一个字符串中返回指定的字符
slice()从开始到结束,如果只有一个参数,到最后

题目四:小明希望利用map()把字符串变成整数,他写的代码很简洁:

var arr = ["1", "2", "3"];
var r;
r = arr.map(parseInt);
console.log(r);    //[1, NaN, NaN]

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

parseInt()接受两个参数:第一个参数是需要转换成数字的字符串,第二个参数是基数,默认是0,10进制,如果是小于2或者大于36,则返回NaN
map()forEach()一样接受三个参数:value key array,Array基本概念有介绍。所以:
第一次接受到的参数是map("1",0,[1,2,3]),parseInt("1",0),结果为1
第二次接受到的参数是map("2",1,[1,2,3]),parseInt("2",1),结果为NaN
第三次接受到的参数是map("3",2,[1,2,3]),parseInt("3",2),结果为NaN

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95005.html

相关文章

  • Javascript 中的map/reduce

    摘要:简单例子一个较为常用的场景就是累加或累乘输出数组元素的乘积输出数组元素的乘积简写形式输出数组元素的乘积形式,营造复杂的逼格用在数组降维扁平化处理的例子中注方法用于连接两个或多个数组。 看到一个提问的回答巧妙地使用了map/reduce操作,很优雅,所以来学习和总结一下javascript自带的map/reduce的使用技巧,文章不会讲的很深,纯当科普一下知识点,如有解释的不正确的地方,...

    zhou_you 评论0 收藏0
  • 开开心心做几道JavaScript机试题 - 02

    摘要:前集回顾我们在开开心心做几道机试题中吐了槽,也顺势展开了机试题之旅,本章我们暂时压抑自己的吐槽之心,继续就题目前行。其实和都是构造函数,可以直接调用的。请尝试完成一个解析模块本题考查对的理解,各部分都是什么意思。 前集回顾 我们在开开心心做几道JavaScript机试题 - 01中吐了槽,也顺势展开了机试题之旅,本章我们暂时压抑自己的吐槽之心,继续就题目前行。仍然希望对各位正确认识Ja...

    seal_de 评论0 收藏0
  • python内置函数 map/reduce

    摘要:函数接收两个参数,一个是函数,一个是,将传入的函数依次作用到序列的每个元素,并把结果作为新的返回。举例说明,比如我们有一个函数,要把这个函数作用在一个上,就可以用实现如下传入的第一个参数是,即函数对象本身。 Python内建了map()和reduce()函数。 如果你读过Google的那篇大名鼎鼎的论文MapReduce: Simplified Data Processing on L...

    Miracle_lihb 评论0 收藏0
  • Python3的高阶函数map,reduce,filter

    摘要:函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。和不同的是,把传入的函数依次作用于每个元素,然后根据返回值是还是决定保留还是丢弃该元素。 函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。注意其中:map和filter返回一个惰性序列,可迭代对象,需要转化为list >>> a = 3.1415 >>> ...

    Codeing_ls 评论0 收藏0
  • 翻译连载 | JavaScript轻量级函数式编程-第 8 章:列表操作 |《你不知道的JS》姊妹篇

    摘要:通过对一系列任务建模来理解一些非常重要的函数式编程在列表操作中的价值一些些看起来不像列表的语句作为列表操作,而不是单独执行。映射我们将采用最基础和最简单的操作来开启函数式编程列表操作的探索。函子是采用运算函数有效用操作的值。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 关于译者:这是一个流淌着...

    sPeng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<