我有点使用自定义选项创建输入教师。
不是专业人士(不要因为错误的人错误的地方而生我的气)但是感谢有用的论坛,例如stackoverflow.com和贡献的流量/人,我能够把它拉出来一两天。
直接现在,在这里!
while (i < len+1){
if(boxarray[i] == orgarray[i]){
++i;
actualScore = i - 1;
}
我已经搜索了,&#39; ==&#39;运算符是没用的,我不会去JSON.encode。我在this page遇到了类似的解决方案。但在我的情况下,我在比较两个句子时循环遍历每个单词。细节是微不足道的,如果有人请帮助我解决上述问题,我不会抱怨同一个项目,承诺。
好的,我可以提供更多代码,如果它可以帮助你帮助我。
var paratext = document.getElementById('typethis').innerHTML;
var orgstr = "start typing, in : BtXr the yellow box but. please don't shit." ;
var boxtext = document.getElementById('usit').value;
var endtrim = boxtext;
var actualScore;
var orgarray = listToArray(orgstr," ");
var boxarray = listToArray(boxtext," ");
var len = boxarray.length;
var i = 0;
var actualScore; //note var undefined that's one mistake I was making [edit]
if(orgstr.indexOf(boxtext) !== -1){
while (i < len+1){
if(boxarray[i] == orgarray[i]){
++i;
actualScore = i - 1;
}
}
alert(actualScore);
}
答案 0 :(得分:1)
如果我按照你的意思追问你:
var s1 = 'The dog sleeps';
var s2 = 'the dog jogs';
var s1Parts= s1.split(' ');
var s2Parts= s2.split(' ');
var score = 0;
for(var i = 0; i<s1Parts.length; i++)
{
if(s1Parts[i] === s2Parts[i])
score++;
}
&#34;狗睡觉&#34;并且&#34;狗睡觉&#34;由于案例导致得分为2(如果需要,可以忽略)。上面的例子得分为1.可以通过使用句子的长度获得百分比。希望这可以帮助!如果没有别的东西可以让你开始。
答案 1 :(得分:1)
以下将比较每个角色,减少&#34; actualScore&#34;对于每个不平等:
var sentence1 = "This is the original sentence.", // original text
sentence2 = "This is teh originel sentence.", // what the user typed
length = sentence1.length,
actualScore = length, // start with full points
i = 0;
while(i<length){
if(sentence1[i]!==sentence2[i]){
actualScore--; // subtract 1 from actual score
}
i++; // move to the next index
}
alert("'sentence2' is "+Math.round(100*(actualScore/length))+"% accurate");
答案 2 :(得分:0)
让我们说输入是你的两个句子作为字符串。
然后,首先要做的是创建两个临时字符串,删除所有非单词字符(例如标点字符)。通过单词分隔符将句子拆分为字符串数组。
然后你可以指定一个整数变量来得分。为两个句子创建外循环和内循环。当句子中的单词匹配时,将变量递增1,从第2个句子中删除单词(用非单词字符替换单词)并打破内循环。
另外,请使用此运算符进行单词比较:
===
答案 3 :(得分:0)
你的问题是
if (boxarray[i] = orgarray[i])
single =是赋值运算符。替换为
===
进行比较。
答案 4 :(得分:0)
你没有比较你正在分配
if(boxarray[i] = orgarray[i]){
^^^
所以每次迭代都会如此。修复拼写错误以实际执行您想要的检查
if(boxarray[i] === orgarray[i]){
^^^
你如何计算得分看起来是错的。你应该做像
这样的事情var score = orgstr.length;
while...
if(boxarray[i] === orgarray[i]){
score--;
}
答案 5 :(得分:0)
{
string1="string1";
string2="string2 is here";
changepercent(string1,string2);
}
function changepercent(string1,string2) {
var s1Parts= string1.split(' ');
var s2Parts= string2.split(' ');
var matched = 0;
for(var i = 0; i<s1Parts.length; i++)
{
for(var j = 0; j<s2Parts.length; j++)
{
if(s1Parts[i] === s2Parts[j])
matched++;
}
}
var percentage=(matched/Math.max(s1Parts.length, s2Parts.length))*100;
console.log(matched);
console.log(percentage);
if(percentage<50)
{
console.log("Change Above 50%");
}
}
稍作修改的第一个代码