gpt4 book ai didi

javascript - 通过与javascript中数组的单词进行比较来连接字符串的单词

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:55:10 24 4
gpt4 key购买 nike

HTML:

<!DOCTYPE html>
<html>

<head>
<title>Glue words</title>
</head>

<body>
<textarea rows="20" cols="50" id="textbase">
Write text to fix after. je suis gen til l ol
</textarea>
<br>
<button type="button" onclick="gluefct()">Tokenize</button>
</body>

</html>

JS:

function gluefct() {

var space = " ";
var glueArray = ["jesuis", "gentil", "lol"];
var stringBase = document.getElementById("textbase").value;
var newString = "";

for (gluewords in glueArray) {
var arrayofstring = stringBase.split(" ");
var numberelement = arrayofstring.length;
var i = 0;

while (i < numberelement) {
var motactuel = arrayofstring[i];
var n = i;

while (motactuel.length < gluewords.length) {
n = n+1;
motactuel = motactuel + arrayofstring[n];
}

if (motactuel == gluewords) {
newString = newString + motactuel + space;
i = n+1;
}

else {
newString = newString + arrayofstring[i] + space;
i = i + 1;
}
}

stringBase = newString;
newString = "";
}

document.getElementById("textbase").value = stringBase;
}

基本上,我想要做的是通过检查字符串数组中的完整单词来粘贴字符串中的单词。

例如:

这是我的数组:

var glueArray = ["jesuis", "gentil", "lol"];

这是我的字符串:

"je suis gen til lo l et voilà"

这应该是函数的结果:

"jesuis gentil lol et voilà"

我看不出我的代码有什么问题。谁能帮忙?

最佳答案

也许你可以这样做;

var reference = ["jesuis", "gentil", "lol"],
str = "je su is gen til lo l et voilà",
result = str.split(/\s+/)
.reduce((p,c,i,a) => { var testStr = p[p.length-1] + c;
reference.some(s => s.indexOf(testStr) !== -1) ? p[p.length-1] = testStr
: p.push(c);
return p;
},[""])
.join(" ");
console.log(result);

它首先获取 str 并通过以空格作为分隔符将其拆分为一个数组。

在 reduce 中,我们将每个单词 (c) 一个一个地取出,并将其与前一个单词 (p[p.length-1]) 连接起来生成一个测试字符串 (testStr).

如果在 reference 数组的项中找到 testStr,我们将替换 p 数组中的最后一项,并将其“与下一项连接”词”版本。如果在 reference 数组项中找不到 testStr,我们会将当前单词 (c) 推送到 p大批。并为下一轮返回 p

关于javascript - 通过与javascript中数组的单词进行比较来连接字符串的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39317294/

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