本文分为以下几个方面:
- 知识、思路
- 实现代码
- 测试代码
- git log截屏记录
知识、思路、github地址
http://www.jianshu.com/p/62a1aa729672
git@github.com:kuirons/frequencynumber.git
实现代码
function handleString(testArray, result, resultFlag, resultArray) {
for (var i = 0; i < testArray.length; i++) {
var reg = /^[a-z]*$/
if (testArray[i].indexOf("'") !== -1) {
result = "请不要输入缩写"
resultFlag = false
break
}
else if (reg.test(testArray[i])) {
if (resultArray.has(testArray[i])) {
resultArray.set(testArray[i], resultArray.get(testArray[i]) + 1)
}
else {
resultArray.set(testArray[i], 1)
}
}
else {
result += "输入的字符串包含非法字符"
resultFlag = false
break
}
}
return {result: result, resultFlag: resultFlag};
}
function sortS(changeArrayValue, i, changeArraykey) {
flag = changeArrayValue[i]
for (var j = i; j < changeArrayValue.length; j++) {
if (flag < changeArrayValue[j]) {
var ch = changeArrayValue[i]
changeArrayValue[i] = changeArrayValue[j]
changeArrayValue[j] = ch
var ch = changeArraykey[i]
changeArraykey[i] = changeArraykey[j]
changeArraykey[j] = ch
}
}
return {j: j, ch: ch, ch: ch};
}
function spliceString(resultArray, result) {
{
var changeArraykey = new Array()
var changeArrayValue = new Array()
resultArray.forEach(function splitString(item, key, mapObj) {
changeArraykey.push(key)
changeArrayValue.push(item)
})
for (var i = 0; i < changeArrayValue.length; i++) {
var __ret = sortS(changeArrayValue, i, changeArraykey);
var j = __ret.j;
var ch = __ret.ch;
var ch = __ret.ch;
}
for (var i = 0; i < changeArrayValue.length; i++) {
result = result + changeArraykey[i] + " " + changeArrayValue[i] + "\n"
}
}
return result;
}
function judge(testString, result) {
testString = testString.toLowerCase()
var testArray = testString.split(/[ ]+/)
var resultArray = new Map()
var resultFlag = true
var __ret = handleString(testArray, result, resultFlag, resultArray);
result = __ret.result;
resultFlag = __ret.resultFlag;
if (resultFlag === true) result = spliceString(resultArray, result);
return {testString: testString, result: result};
}
/**
* Created by Admin on 2017/4/17.
*/
function fn(testString) {
var result = "";
if (testString === "") {
result = ""
}
else if ((typeof testString) !== "string") {
result = "输入的类型不是字符串"
}
else {
var __ret = judge(testString, result);
testString = __ret.testString;
result = __ret.result;
}
return result
}
测试代码
/**
* Created by Admin on 2017/4/17.
*/
/*
"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("./test.js")
*/
describe("fn", function () {
it("testcase1", function () {
expect("").toEqual(fn(""));
});
it("testcase2", function () {
expect("输入的类型不是字符串").toEqual(fn(123));
});
it("testcase3", function () {
expect("输入的类型不是字符串").toEqual(fn(12.3));
});
it("testcase4", function () {
var testarry=new Array([1,"2"])
expect("输入的类型不是字符串").toEqual(fn(testarry));
});
it("testcase5", function () {
expect("请不要输入缩写").toEqual(fn("it's a Pig"));
});
it("testcase6", function () {
expect("it 1\nis 1\na 1\npig 1\n").toEqual(fn("IT IS A PIG"));
});
it("testcase7", function () {
expect("输入的字符串包含非法字符").toEqual(fn("IT% IS A PIG"));
});
it("testcase8", function () {
expect("输入的字符串包含非法字符").toEqual(fn("it is a pig,it is cute"));
});
it("testcase9", function () {
expect("it 3\nwas 2\nthe 2\nage 2\nof 2\nwisdom 1\nfoolishness 1\nis 1\n").toEqual(fn("it was the age of wisdom it was the age of foolishness it is"));
});
});
git log截图
![](https://img.haomeiwen.com/i5392479/f42522722e818ce2.png)
网友评论