gpt4 book ai didi

javascript - 在 Javascript 或 Underscore 中,我可以计算一个数组中子字符串的实例数吗?

转载 作者:行者123 更新时间:2023-11-30 07:25:54 26 4
gpt4 key购买 nike

这一定很简单,但我还是不太明白如何计算一个数组中子字符串的数量。 Underscore 中有什么我遗漏的吗?

var foo = ["fred", "ted", "medical", "car"]

function howManySubstringsInArray(arr, word){
var i = arr.length,
j = 0;
while (i) if (arr[--i].indexOf(word))++j;
return j;
}

howManySubstringsInArray(foo, 'ed')
Output => 3

这不起作用。

最佳答案

假设您不关心每个数组元素的重复匹配,您可以filter查找匹配元素的数组:

注意:这是一个标准的 ECMAScript 5 函数,不是来自下划线。上面的链接提供了适用于旧版浏览器的填充程序。

function howManySubstringsInArray(arr, word) {
return arr.filter(function(v) {
return v.indexOf(word) >= 0;
}).length;
}

严格来说,这是创建一个新数组,有点浪费,因为我们所做的只是对元素进行计数,但对于“小”列表来说,这无关紧要。

不管怎样,裸循环实际上可以很好地工作——您只需要确保循环的结构正确,并且您确实查看了 .indexOf 调用的结果。您现有的向后迭代使循环条件比它们需要的更难遵循:

function howManySubstringsInArray(arr, word) {
var i = 0, n = arr.length, count = 0;
for ( ; i < n; ++i) {
if (arr[i].indexOf(word) >= 0) {
++count;
}
}
return count;
}

关于javascript - 在 Javascript 或 Underscore 中,我可以计算一个数组中子字符串的实例数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685508/

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