Frequency Number (第二次版)

一: 本次練習涵蓋知識的說明講解


1.軟件支持烁竭,環(huán)境搭配

(1)Git環(huán)境配置
(2)Npm環(huán)境配置
(3)Jasmine環(huán)境配置
(4)Webstorm配置
關于環(huán)境配置:我開始是想用linux系統(tǒng)來寫這個任務的菲茬,于是我花了一大段的時間來在linux下裝環(huán)境,由于對linux系統(tǒng)的不熟悉颖变,在裝這幾個軟件的時候生均,花費了很多的時間,每次失敗了都去百度上找貼子腥刹,等等马胧,但是以失敗告終。最后暫時放棄linux衔峰,又重新再windows下完成任務佩脊。

2.知識需求

(1)JS的基本語法和函數(shù)

二:思考過程(TDD模式)

1.從測試入手蛙粘,先保證滿足測試先過。
2.再將代碼從特殊的(滿足一個測試的時候)威彰,變成具體化(滿足任意的條件)出牧。
3.重復寫出不同的測試,使每種情況都滿足歇盼。
4.將最后得到的代碼重新整理舔痕,提高可讀性。

三:測試和實現(xiàn)的代碼

測試

"use strict";
var _ = require("lodash");
var chai = require("chai");
var sinon = require("sinon");
var sinonChai = require("sinon-chai");
var expect = chai.expect;
chai.use(sinonChai);

var main = require("../testmain/main.js");


describe("測試描述",function () {
    sinon.spy(console, 'log');

    it("傳入'he' 返回‘he 1’", function () {

        var result = main('he');
        var expect_string = 'he 1';

        expect(expect_string).to.equal(result);

    });
    it("傳入'he is' 返回‘he 1\nis 1’", function () {

        var result = main('he is');
        var expect_string = 'he 1\nis 1';

        expect(expect_string).to.equal(result);

    });
    it("傳入'he    is    ' 返回‘he 1\nis 1’", function () {

        var result = main('   he    is    ');
        var expect_string = 'he 1\nis 1';

        expect(expect_string).to.equal(result);

    });
    it("傳入'he    he  is ' 返回‘he 2\nis 1’", function () {

        var result = main('   he    he  is   ');
        var expect_string = 'he 2\nis 1';

        expect(expect_string).to.equal(result);

    });
    it("傳入'he is a he he is is is' 返回‘is 4\nhe 3\na 1’", function () {

        var result = main('he is a he he is is is');
        var expect_string = 'is 4\nhe 3\na 1';

        expect(expect_string).to.equal(result);

    });
});

實現(xiàn):

function main(string) {
    var words = string.trim().split(/\s+/);
    var splitWords = [];
    var num = [];

    function findPositon(arr, w) {
        var ret = -1;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] === w) {
                ret = i;
            }
        }
        return ret;
    }

    function classify(words,num) {
        for (var i = 0; i < words.length; i++) {
            var pos = findPositon(splitWords, words[i]);
            if (pos !== -1) {
                num[pos]++;
            } else {

                splitWords.push(words[i]);
                num.push(1);
            }
        }
    }

    function format(splitWords,num) {
        var answer = '';
        for (var i = 0; i < splitWords.length; i++) {
            answer += splitWords[i] + ' ' + num[i];
            if (i !== splitWords.length - 1) {
                answer += '\n';
            }
        }

        return answer;
    }

    function SortWords(splitWords,num) {
        for (var i = 0; i < num.length; i++) {
            for (var j = i; j < num.length; j++) {
                if (num[i] < num[j]) {
                    var temp = num[i];
                    num[i] = num[j];
                    num[j] = temp;
                    temp = splitWords[i];
                    splitWords[i] = splitWords[j];
                    splitWords[j] = temp;
                }
            }
        }
    }

    classify(words,num);

    SortWords(splitWords,num);

    return format(splitWords,num);
}


module.exports = main;

github

https://github.com/handsone/Frequency-Number.git

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末豹缀,一起剝皮案震驚了整個濱河市伯复,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邢笙,老刑警劉巖啸如,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異氮惯,居然都是意外死亡叮雳,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門妇汗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘不,“玉大人,你說我怎么就攤上這事铛纬⊙峋” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵告唆,是天一觀的道長棺弊。 經(jīng)常有香客問我,道長擒悬,這世上最難降的妖魔是什么模她? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮懂牧,結果婚禮上侈净,老公的妹妹穿的比我還像新娘。我一直安慰自己僧凤,他們只是感情好畜侦,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躯保,像睡著了一般旋膳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上途事,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天验懊,我揣著相機與錄音擅羞,去河邊找鬼。 笑死义图,一個胖子當著我的面吹牛减俏,可吹牛的內(nèi)容都是我干的秦效。 我是一名探鬼主播案站,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拟赊!你這毒婦竟也來了痛垛?” 一聲冷哼從身側響起草慧,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匙头,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仔雷,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蹂析,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碟婆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片电抚。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖竖共,靈堂內(nèi)的尸體忽然破棺而出蝙叛,到底是詐尸還是另有隱情,我是刑警寧澤公给,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布借帘,位于F島的核電站,受9級特大地震影響淌铐,放射性物質(zhì)發(fā)生泄漏肺然。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一腿准、第九天 我趴在偏房一處隱蔽的房頂上張望际起。 院中可真熱鬧,春花似錦吐葱、人聲如沸街望。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽灾前。三九已至,卻和暖如春窖认,著一層夾襖步出監(jiān)牢的瞬間豫柬,已是汗流浹背告希。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烧给,地道東北人燕偶。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像础嫡,于是被迫代替她去往敵國和親指么。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容