JS中的map/reduce方法

作者: fenerchen | 来源:发表于2017-08-25 15:58 被阅读27次

廖老师的官网,关于这两种方法的使用写的通俗易懂,现在就直接上例子了。

例:字符串转数字。

     条件:1、不能用JS内置的parseInt()函数和Number。
                2、仅使用map和reduce操作。
     测试:输入‘1890’;输出1890;
//实现代码
    function tonumber(x){
      var str='0123456789';
      x=str.indexOf(x);
      return x;
}
 function string2int(s) {  
    var len=s.length;
    var arr=[];
    for(var i=0;i<len;i++){ arr.push(s[i]);} 
    var num=arr.map(tonumber);  
    return num.reduce(function (x, y) { return x * 10 + y; });   
}
//测试
alert( string2int('132'));
alert( typepf string2int('132'))
//输出
123
number

注意

数组arr调用map方法后,并没有改变arr本身 arr中的元素仍然为string,因此该例中重新定义了一个num存放修改类型后的值。

例:把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。

function toUpper(word){
  return word[0].toUpperCase()+word.substring(1).toLowerCase();
}
function normalize(arr) {
var after=arr.map(toUpper);
 return after;
}
//测试
alert(normalize(['adam', 'LISA', 'barT']))
//输出:['Adam', 'Lisa', 'Bart']

注意

字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何效果.
var s = 'adam';
s[0] = s[0].toUpperCase();
alert(s); // s仍然为'adam'

相关文章

  • JS中的map/reduce方法

    廖老师的官网,关于这两种方法的使用写的通俗易懂,现在就直接上例子了。 例:字符串转数字。 注意 数组arr调用ma...

  • 2018-11-07

    js中数组<三>(第九篇) 直接上主题:这篇介绍常用的、好用的js数组方法,有以下几个 map() reduce(...

  • LearnSwift-小白学习map,reduce方法

    数组的map、reduce方法 map方法将遍历序列中每个元素 简化版 reduce: i 这里是一个累加器(并不...

  • js函数实现:forEach、map、reduce

    先认识JS的ArrayforEach、map和reduce方法: 因为typescript中有类型标注,我们看一下...

  • js中数组reduce方法的使用和实现

    js中数组reduce方法的使用和实现 reduce方法定义 reduce() 方法对数组中的每个元素执行一个传入...

  • js数组之forEach,every,some,filter,m

    js数组有很多操作方法,其中forEach,every,some,filter,map,reduce是常容易混淆用...

  • 高阶组件

    高阶函数:接受一个或多个函数并返回一个函数 JS中,array的map、filter、reduce等方法就是高阶函...

  • js 之map和reduce方法 练习

    下面是js中MapReduce的简单练习。主要使用js提供给数组的map和reduce方法,最后一个例子考虑一下可...

  • reduce实现map方法

    reduce实现map方法,首先我们先来了解一下reduce和map: 1.reduce是一个累加方法,是对数组累...

  • js中map/reduce/filter

    map() map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。 map() 方法按照原...

网友评论

    本文标题:JS中的map/reduce方法

    本文链接:https://www.haomeiwen.com/subject/ldgudxtx.html