gpt4 book ai didi

javascript - String.match.length 返回数组。需要一个整数值。

转载 作者:行者123 更新时间:2023-12-02 14:48:32 24 4
gpt4 key购买 nike

我正在尝试编写一个函数来计算字母表中的字母与字符串中的字母的匹配次数。然后,我将每个字母的计数存储到关联数组中。

我的问题是 string.match(regExpression) || [].length 返回一个数组。我的期望是它会返回一个与匹配长度匹配的整数值。我知道 string.prototype.match() 方法返回一个数组,但我的理解(基于该方法的正式描述)是 Sting.length 返回一个数字。

我做错了什么?

    function countLetters(string) {
//create array with letters of alphabet
var alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
var counts = [];

for (i = 0; i < alphabet.length; i++) {
var regExpression = new RegExp(alphabet[i], "g");
counts[alphabet[i]] = string.match(regExpression) || [].length
}
return counts;
}

最佳答案

我认识到自己的错误。行 string.match(regExpression) || [].length 的行为异常,因为在调用 length 方法之前我在 match 方法和逻辑运算符周围缺少括号。我正在返回数组或空数组的长度。

我还将 counts 更改为对象。

这是固定功能:

function countLetters(string) {
//declare array with letters of alphabet
var alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
//declare object which will store our counts
var counts = {};

//iterate through alphabet array, find matches, and assign count of matches to counts object
for (i = 0; i < alphabet.length; i++) {
var regExpression = new RegExp(alphabet[i], "g");
counts[alphabet[i]] = (string.match(regExpression) || []).length
}
return counts;
}

关于javascript - String.match.length 返回数组。需要一个整数值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36389432/

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