Frequency Number

作者: TW_1024_周杨涵 | 来源:发表于2017-05-19 23:09 被阅读5次

GIT

什么是GIT

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

GIT安装

设置用户名和邮箱.png

Nodejs

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。

环境搭建

_GWF49GZ6DI$F%Y@DVI4{9D.png

TDD编程

Frequency Number需求

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

example
input
```“it was the age of wisdom it was the age of foolishness it is”outputit 3
was 2
the 2
age 2
of 2
wisdom 1
foolishness 1
is 1`

主要代码

Frequency Number.js

var main= require('../../test.js');

describe("Word Frequency",function(){
    it("return empty string given empty string",function(){
        var result = main('');
        expect(result).toEqual('');
    });
    it("return string given one word",function(){
        var result = main('he');
        expect(result).toEqual('he 1');
    });
    it("return string given two different words",function(){
        var result = main('he is');
        expect(result).toEqual('he 1\r\nis 1');
    });
    it("return string given duplicated words",function(){
        var result = main('he he is');
        expect(result).toEqual('he 2\r\nis 1');
    });
    it("return string given words splited by multiple space",function(){
        var result = main('he    is');
        expect(result).toEqual('he 1\r\nis 1')
    });
    it("a test",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')
    });

test.js

sdavar formatWordAndCount = function (words, count){
    return words + ' ' + 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 (groupWords) {
    groupWords .sort((x, y) => y.count - x.count);
}

var format = function (groupWords) {
    return groupWords.map((e) => formatWordAndCount(e.word, e.count)).join('\r\n');
}
function main(words){
    if(words !== ''){
        let wordArray = split(words);
        let  groupWords = group(wordArray);
        sort(groupWords);
        return format(groupWords);
    }
    return '';
}
module.exports = main;```

相关文章

  • Frequency number

    Github链接 TDD作业划分 1.分单词2.分组3.排序4.多个空格 Frequency number 的最终...

  • Frequency Number

    Github仓库地址:

    https://github.com/55533/balala
    本次练...

  • Frequency Number

    TW_黑珍珠号_陈祥梅 Frequency Number 需求 一个 Node.js 小程序,它可以处理一段字符串...

  • Frequency Number

    github地址:作业 任务分析: 测试实例: 最后需要输入的语句:“it was the age of wisd...

  • Frequency Number

    为什么使用Git: 能够对文件版本控制和多人协作开发拥有强大的分支特性,所以能够灵活地以不同的工作流协同开发分布式...

  • Frequency Number

    GIT 什么是GIT Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一...

  • TDD初探 + git + NodeJS学习--(Frequen

    github地址:https://github.com/DaisyCJ/Frequency-Number.git ...

  • TDD之Frequency Number练习

    一、Frequency Number处理前准备 Git准备通过连接https://git-for-windows....

  • TDD+Git+Frequency Number

    一、TDD是什么? TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中...

  • Frequency Number作业学习记录

    一 作业要求 补充要求: 将最终代码推送到github远程仓库,链接写到文章里。 作业分解 看到要求我们很多小伙伴...

网友评论

    本文标题:Frequency Number

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