Javascript 计算长字符串中每个句子的单词,jquery

Javascript 计算长字符串中每个句子的单词,jquery,javascript,jquery,arrays,Javascript,Jquery,Arrays,我试着从一个长串中数一数每个句子中的单词。我得到的只是句子的数量。我在C#和Ruby中找到了一些解决方案,但它们不适合我:-) 我对java脚本非常陌生。非常感谢您的帮助。代码如下: 输出结果如下所示: 单词:1已发送:1 单词:0已发送:2 单词:1在发送:3 单词:1在发送:4 单词:1 in发送:5 单词:1在发送:6 单词计数器没有增加!很可能是一些简单的事情。 先谢谢你 var text1 = $('#textarea1').val(); var gaps = []; var w

我试着从一个长串中数一数每个句子中的单词。我得到的只是句子的数量。我在C#和Ruby中找到了一些解决方案,但它们不适合我:-)

我对java脚本非常陌生。非常感谢您的帮助。代码如下:

输出结果如下所示:

单词:1已发送:1 单词:0已发送:2 单词:1在发送:3 单词:1在发送:4 单词:1 in发送:5 单词:1在发送:6

单词计数器没有增加!很可能是一些简单的事情。 先谢谢你

var text1 = $('#textarea1').val();   
var gaps = [];
var wordsC = 0;
var wordsTot = 0;
var tempC = 0;
var sents = text1.split('.');    

for (var elem in sents)
{
    tempC += 1;

    wordsC = elem.split(" ").length;
    wordsTot += wordsC;

    if (tempC == 2) {
        wordsC -= 1;
        wordsTot -= 1;
    }

    document.write("<br />Words:  " + wordsC + " |in sent: " + tempC + "  sent");
};

document.write("<br />words total :    " + wordsTot + "<br />" );
var text1=$('#textarea1').val();
var缺口=[];
var-wordsC=0;
var-wordsTot=0;
var-tempC=0;
var sents=text1.split('.');
for(以sents为单位的变量元素)
{
tempC+=1;
wordsC=元素拆分(“”)长度;
wordsTot+=wordsC;
如果(tempC==2){
wordsC-=1;
wordsTot-=1;
}
文件。写(“
字:+wordsC+”|在sent中:+tempC+“sent”); }; 文件。填写(“
字总计:“+wordsTot+”
);
您不应该在中为…枚举
数组<代码>文本1.拆分('.')
正在生成一个数组,您正试图在中为…枚举该数组。
elem
在中的每一次迭代中,
的值是作为字符串的数组索引之一('0'在第一次迭代中,'1'在第二次迭代中,依此类推)。您甚至可以使用一些数组原型方法,以及原型更改中的其他内容

对于ES6之前的环境,请尝试:

for (var i = 0; i < sents.length; i++)
{
    tempC += 1;

    wordsC = sents[i].split(" ").length;
    wordsTot += wordsC;

    if (tempC == 2) {
        wordsC -= 1;
        wordsTot -= 1;
    }

    document.write("<br />Words:  " + wordsC + " |in sent: " + tempC + "  sent");
}
var str=“这里有五个字。我非常喜欢海龟。这五个字很长。是的。”;
var split=str.split(“.”);
变量amountofcentenses=str.charAt(str.length-1)=“?split.length:split.length+1;
var合计=0;
对于(i=0;i);
总数=0;
}

几个注意事项,用于迭代对象属性;在阵列上使用它可能会发生意想不到的事情。如果您不知道,JS使用函数作用域,在
for
语句中使用
var
定义
elem
不会将其作用域限制在循环中,改用
console.log()
。干得好,Snorlax。非常感谢。@ArtJ没问题!请选择我的答案作为正确答案,如果你认为它是好的,请投票:)@ArtJ没问题。您应该能够将其标记为答案:)Snorax的解决方案是解决我问题的完美答案。问题得到圆满解决。恭喜你,斯诺拉克斯。如果我以后在java/jquery编程方面遇到麻烦,我将保留向您提问的权利。Snorax,我对您非常有信心:请看一看我的问题-突出以相同的两个单词开头的句子,javascript?
for (let elem of sents)
{
    tempC += 1;

    wordsC = elem.split(" ").length;
    wordsTot += wordsC;

    if (tempC == 2) {
        wordsC -= 1;
        wordsTot -= 1;
    }

    document.write("<br />Words:  " + wordsC + " |in sent: " + tempC + "  sent");
};