gpt4 book ai didi

javascript - Javascript 中的 .filter(v => !!v)

转载 作者:行者123 更新时间:2023-12-02 03:42:36 25 4
gpt4 key购买 nike

我有一个应用程序,可以将 tex 文件转换为带有键值对的 JavaScript 对象。键是单词,值是它在文本文件中出现的次数。让我们一起看一下:

FormatText.prototype.toDowncase = function() {
return this._data = this._data.toLowerCase();
};

这会将单词转为小写

FormatText.prototype.deleteWords = function() {
return this._data = this._data.replace(/\W/g, " ");
};

这会将所有非单词替换为空格

FormatText.prototype.splitWords = function() {
return this._data = this._data.split(/\s+/);
};

这会将字符串转换为数组并在每个分隔符处拆分

FormatText.prototype.filterEntries = function() {
return this._data = this._data.filter(v => !!v);
};

上面这个我不知道它是做什么的。

FormatText.prototype.countWords = function() {
return this._data = this._data.reduce((dict, v) => {dict[v] = v in dict ? dict[v] + 1 : 1; return dict}, {});
}

有人可以解释一下这个吗,不过我会尝试一下:

这个获取数组并传递带有两个参数的“reduce”方法。它计算每个单词出现的次数,并返回一个包含本问题开头描述的“键值”对的对象。

最佳答案

v => !!v 表示采用 v,并通过应用 NOT 两次将其强制为 bool 类型。因此,过滤器函数基本上是从 this._data 中删除任何错误值(0、null、未定义)。

countWords 正在计算每个单词在 this._data 中出现的次数 - 它会遍历数组,如果遇到该单词,则在计数中加 1之前,如果之前没有遇到过该单词,则返回 1。它返回一个对象,其中单词作为键,计数作为值。

请注意,这些函数将 this._data 的类型从字符串更改为数组,再更改为对象。这可能会导致出现错误,例如您运行相同的方法两次

关于javascript - Javascript 中的 .filter(v => !!v),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48065557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com