例如对于输入olly olly in come free"
程序应该返回:
olly: 2在:1来:1免费:1
测试写成:
var words = require('./word-count');
describe("words()", function() {
it("counts one word", function() {
var expectedCounts = { word: 1 };
expect(words("word")).toEqual(expectedCounts);
});
//more tests here
});
如何从我的 word-count.js 文件开始?创建一个方法 words() 或一个模块 Words() 并在其中创建一个 expectedCount 方法并导出它?
How do I start in my word-count.js file? Create a method words() or a module Words() and make an expectedCount method in there and export it?
我将字符串视为数组还是对象?在对象的情况下,我如何开始将它们分解成单词并迭代计数?
Do I treat the string as an array or an object? In the case of objects, how do I start breaking them into words and iterate for the count?
function count(str) {
var obj = {};
str.split(" ").forEach(function(el, i, arr) {
obj[el] = obj[el] ? ++obj[el] : 1;
});
return obj;
}
console.log(count("olly olly in come free"));
这段代码应该能得到你想要的.
为了更好地理解代码,我建议您通过数组原型函数和字符串原型函数.
为了简单了解我在这里做什么:
This code should get just what you want.
For more understanding on the code I would advice you to go through array prototype functions and string prototype functions.
For simple understanding of what I`m doing here:
split(" ") 根据提供数组的空格分割字符串.forEach 方法遍历 spitted 数组中的所有元素.:? 检查值是否已经存在,是否加一或赋值为 1.split(" ") based on a space which gives an array.forEach method to iterate through all the elements in the spitted array.:? to check if value already exists, if it does increment by one or assign it to 1.Array.prototypeString.prototype
这篇关于使用javascript计算短语中每个单词的出现次数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
在 javascript 认为文档“准备好"之前,如何让How can I get my jasmine tests fixtures to load before the javascript considers the document to be quot;readyquot;?(在 javascript 认为文档“准备好
jasmine 运行和等待实际上是做什么的?What do jasmine runs and waitsFor actually do?(jasmine 运行和等待实际上是做什么的?)
如何提供模拟文件来更改 <input type='filHow to provide mock files to change event of lt;input type=#39;file#39;gt; for unit testing(如何提供模拟文件来更改 lt;input type=filegt; 的事
如何使用 Jasmine 对链式方法进行单元测试How to unit test a chained method using Jasmine(如何使用 Jasmine 对链式方法进行单元测试)
如何将 $rootScope 注入 AngularJS 单元测试?How do I inject $rootScope into an AngularJS unit test?(如何将 $rootScope 注入 AngularJS 单元测试?)
Jasmine - 如何监视函数中的函数调用?Jasmine - How to spy on a function call within a function?(Jasmine - 如何监视函数中的函数调用?)