Frequency Number

作者: TW_TOB_陈丹阳 | 来源:发表于2017-05-19 22:38 被阅读4次

    为什么使用Git:

    能够对文件版本控制和多人协作开发
    拥有强大的分支特性,所以能够灵活地以不同的工作流协同开发
    分布式版本控制系统,即使协作服务器宕机,也能继续提交代码或文件到本地仓库,当协作服务器恢复正常工作时,再将本地仓库同步到远程仓库。
    当团队中某个成员完成某个功能时,通过pull request操作来通知其他团队成员,其他团队成员能够review code后再合并代码.
    Git常用命令:
    创建仓库
    git init
    git clone
    git config
    保存修改
    git add
    git commit
    查看仓库
    git status
    git log --oneline

    TDD是什么:

    TDD(Test-Driven Development)
    测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。

    任务要求:

    我想要一个nodejs小程序,
    它可以帮我处理一段字符串信息,这段字符串信息是由英文单词组成,每两个单词之间有空格,
    处理结果也为一段字符串,这个字符串应该每行只显示一个单词和它的数量,并且按出现频率倒序排列

    excmple:

    input:

    “it was the age of wisdom it was the age of foolishness it is”

    Output:

    it 3
    was 2
    the 2
    age 2
    of 2
    wisdom 1
    foolishness 1
    is 1

    代码:

    var format = function (word,count){
    return word +" "+ count;
    };
    var group = function(wordArray){
    return wordArray.reduce((array,word) => {
    let entry = array.find((e) =>e.word ===word);
    if(entry){
    entry.count++;
    }else{
    array.push({word:word,count:1});
    }
    return array;
    },[]);
    };
    var split = function(words){
    return words.split(/\s+/);
    };
    var sort = function(groupedWords){
    groupedWords.sort((s,y)=>y.count - x.count);
    };
    function main(words){
    if(words!== ''){
    let wordArray = words.split(/\s+/);
    let groupedWords = group(wordArray);
    groupedWords.sort((x,y) =>y.count -x.count);
    return groupedWords.map((e) => format(e.word,e.count)).join('\r\n');
    }
    return '';
    }
    module.exports = main;
    var main = require("./main.js");
    describe("Word Frequency",function(){
    it("returns empty string given empty string",function(){
    var result = main('');
    expect(result).toEqual('');
    });
    it("returns string given one word",function(){
    var result = main('he');
    expect(result).toEqual('he 1');
    });
    it("returns string given two different words",function(){
    var result = main('he is');
    expect(result).toEqual('he 1\r\nis 1');
    });
    it("returns string given duplicated words",function(){
    var result = main('he is he');
    expect(result).toEqual('he 2\r\nis 1');
    });
    it("returns string given duplicated words need to be sorted",function(){
    var result = main('he is is');
    expect(result).toEqual('is 2\r\nhe 1');
    });
    it("returns string given words splited by multiple spaces",function(){
    var result = main('he is');
    expect(result).toEqual('he 1\r\nis 1');
    });
    it("returns string given words splited by multiple spaces",function(){
    var result = main('it was the age of wisdom it was the age of foolishness it is');
    expect(result).toEqual('it 3\r\nwas 2\r\nthe 2\r\nage 2\r\nof 2\r\nwisdom 1\r\nfoolishness 1\r\nis 1');
    });
    });

    任务感想:

    对于完全没接触过的人来说这次任务还是有不小难度的,通过问别人和看视频的方式勉强完成(尤其是有一堆看不懂的英文),感觉自己还有很多地方需要了解和学习。还需努力…

    相关文章

      网友评论

        本文标题:Frequency Number

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