gpt4 book ai didi

javascript - 使用 JavaScript 数组在字符串中添加两个字母的百分比

转载 作者:行者123 更新时间:2023-12-03 08:59:51 25 4
gpt4 key购买 nike

我使用下表中的百分比来显示某个字母后面的字母是元音还是辅音。

a: C= 90%, V=  7% 
b: C= 32%, V= 65%
c: C= 40%, V= 59%
d: C= 17%, V= 77%
e: C= 79%, V= 14%
f: C= 31%, V= 68%
g: C= 35%, V= 57%
h: C= 8%, V= 85%
i: C= 82%, V= 16%
j: C= 0%, V= 98%
k: C= 18%, V= 71%
l: C= 26%, V= 74%
m: C= 14%, V= 83%
n: C= 49%, V= 47%
o: C= 79%, V= 15%
p: C= 43%, V= 57%
q: C= 0%, V=100%
r: C= 31%, V= 64%
s: C= 61%, V= 36%
t: C= 28%, V= 67%
u: C= 90%, V= 9%
v: C= 1%, V= 99%
w: C= 22%, V= 71%
x: C= 15%, V= 72%
y: C= 58%, V= 24%
z: C= 7%, V= 91%

例如,y 之后的字母有 58% 的可能性是辅音。

我有一个包含以下值的数组:

var arr = ["Cookie", "Bird", "Flower"];

我需要 JavaScript 遍历每个元素并获取每项工作,如果它们不占多数,则将百分比相加。例如:

<小时/>

cookies :

CO <- 因为 C 转向 O 占多数,59%,所以不会添加任何内容。

OO <- 因为 O 到 O(元音到元音)的情况并不占大多数(只有 15% 的情况)79% 将被添加

好的 <- 因为它是从 O 到 K(元音到辅音),所以不会添加任何内容。

KI <- 因为它是 K 到 I(辅音到元音),所以不会添加任何内容。

IE <- 因为 I 转到 E(元音到元音)并不占大多数(只有 16% 的情况)82% 将被添加

<小时/>

最终应该是 79% + 82% = 161。我有以下代码,适用于字符串,而不是数组

var str = 'Cookie';
for (var i = 0, len = str.length; i < len; i++) {
console.log(str[i] + str[i + 1]);
}

这会在控制台中提供以下输出:

CO 
OO
OK
KI
IE

所以我有了字符串的基本功能,但是我如何让它与数组一起工作并添加百分比?

最佳答案

我们可以使用 Array.prototype.reduce 来获取非常干净的上一个、当前变量,以便我们可以非常轻松地比较转换。您只需要检查当前字符是否实际上是元音。然后检查转换的概率,如果它高于 50,则使用转换的相反概率并将其添加到累加器中。就是这样。

有一件事,我没有讨论字符串数组的迭代。主要是因为我没有一个对象的完整统计信息,所以我只能提供一个工作字符串。

var options = {
c: {
C: 40,
V: 59
},
o: {
C: 79,
V: 15
},
k: {
C: 18,
V: 71
},
i: {
C: 82,
V: 16
},
e: {
C: 79,
V: 14
}
}

var vowels = {
a : true,
e : true,
i : true,
o : true,
u : true
}

function isVowel(chr){
if(vowels[chr] !== undefined){
return true;
} else {
return false;
}
}

var results = document.getElementById('results');
var string = 'Cookie';
var acc = 0;
Array.prototype.reduce.call(string, function(prev, current) {
if (prev != '') {
var key = isVowel(current) ? 'V' : 'C';
var keyOpp = key == 'V' ? 'C' : 'V';
var letter = options[prev.toLowerCase()];
var transition = letter[key];
results.innerHTML += (prev + current + '\n').toUpperCase();
var opp = letter[keyOpp];
if(transition < 50){
acc += opp;
}
}
return current;
}, '');

results.innerHTML += 'Sum : ' + acc;
<pre id="results"></pre>

关于javascript - 使用 JavaScript 数组在字符串中添加两个字母的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341892/

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