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方法

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