【问题标题】:Taking a list of strings and checking a separate text file to count the amount of times they appear获取字符串列表并检查单独的文本文件以计算它们出现的次数
【发布时间】:2020-04-13 10:24:49
【问题描述】:

我正在尝试计算 .txt 文件中字符串的次数:

苹果 香蕉 樱桃 橙色

单独出现在另一个 .txt 文件中,比如说一本烹饪书。为了跟踪上述 4 个在书中出现的次数,我将这本书变成了一个字符串数组,并希望将水果变成具有计数键和值的对象,映射数组并然后相应地增加值。

我正在苦苦思索如何将四种水果转化为对象,一般来说,如果我的计划是最好的方法吗?

应该说我正在使用来自 node.js 的 readFile。

谢谢

【问题讨论】:

  • 将四种水果转化为对象吧?到什么目的?问题的标题与其余部分有什么关系?你说的 r 是什么?
  • 道歉我认为我改变了标题不是一个好的开始。我实际上是在尝试检查一个文本文件中是否有上面显示的 4 个字符串。然后我需要能够从提到最多到最少对它们进行排序,因此我需要单独计算每个对象并认为一个对象是最好的?帖子的标题是另一个我会尝试自己解决的问题。
  • 所以改个标题,别说了:p

标签: javascript arrays node.js object


【解决方案1】:

根据您在评论中的解释,我会这样做:

var text_file = "Cherry, the quick brown apple, jumped over the Orange, the lazy banana.";
var ingredient_file = "apple banana cherry orange";

var strings = {};
for (var ingredient of ingredient_file.split(" ")) {
    strings[ingredient] = 0;
}

for (var key in strings) { // loop through all possible words
    strings[key] += text_file.split(key).length - 1; // find how many times they occur
}

现在,这可能不是您想要的。也许您希望“Apple”以及“apple”和“APPLE”都计算在内?在这种情况下,您可以在计算出现次数之前执行text_file.toLowerCase()

也许您只想单独计算“apple”这个词,而不是可能由它组成的词,例如“applecider”?在这方面,您可能需要添加更多规则。

希望对您有所帮助,祝您有美好的一天!

【讨论】:

  • 非常感谢您的回答!包含成分的 txt 文件非常长,有没有办法可以从 txt 文件中取出字符串并将其转换为您在上面第二行输入的内容,而无需手动输入?
猜你喜欢
  • 2014-06-03
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 2012-07-15
  • 2017-02-25
  • 2015-06-09
  • 1970-01-01
相关资源
最近更新 更多