首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript计算短语中每个单词的出现情况。

使用javascript计算短语中每个单词的出现情况。
EN

Stack Overflow用户
提问于 2014-11-09 06:49:25
回答 2查看 4.8K关注 0票数 1

例如,对于输入"olly olly in come free"

该方案应返回:

olly: 2 in: 1 come: 1 free: 1

这些测试的编写如下:

代码语言:javascript
复制
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
});
  1. 如何从我的word-count.js文件开始?创建一个方法words()或一个模块Words(),并在其中创建一个expectedCount方法并导出它?
  2. 我是将字符串视为数组还是对象?对于对象,如何开始将它们分解为单词并迭代计数?
EN

回答 2

Stack Overflow用户

发布于 2014-11-09 07:17:20

代码语言:javascript
复制
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"));

这段代码应该能得到你想要的。

为了对代码有更多的了解,我建议您阅读数组原型函数和字符串原型函数。

为了简单了解我在这里做什么:

  1. 创建一个计数函数,该函数返回所有出现的单词的计数对象。
  2. 根据给出数组的空格使用split(" ")拆分字符串。
  3. 使用forEach方法迭代所述数组中的所有元素。
  4. 三元操作符:?来检查值是否已经存在,如果它增加了一个值,或者将其赋值给1。

Array.prototype String.prototype

票数 8
EN

Stack Overflow用户

发布于 2014-11-09 07:35:50

这是你怎么做的

word-count.js

代码语言:javascript
复制
function word-count(phrase){
    var result = {};  // will contain each word in the phrase and the associated count
    var words = phrase.split(' ');  // assuming each word in the phrase is separated by a space

    words.forEach(function(word){
        // only continue if this word has not been seen before
        if(!result.hasOwnProperty(word){
            result[word] = phrase.match(/word/g).length;
        }
    });

    return result;
}

exxports.word-count = word-count;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26825786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档