获取一个字符串并返回string-JavaScript中的字数

获取一个字符串并返回string-JavaScript中的字数,javascript,string,split,Javascript,String,Split,我正在处理CoderByte的一个问题。我对我的代码很好奇。第一个函数返回6,第二个函数返回4,这是正确的计数。我试图理解为什么会发生这种情况。与控制台日志newArr一样,它只显示4项 CoderByte的问题是:-使用JavaScript语言,让函数WordCount(str)获取要传递的str字符串参数并返回字数 字符串包含(即“永远不要吃小麦丝”将返回4)。单词将由单个空格分隔 var wordCount = function (str) { var newArr = str.s

我正在处理CoderByte的一个问题。我对我的代码很好奇。第一个函数
返回6
,第二个函数
返回4
,这是正确的计数。我试图理解为什么会发生这种情况。与控制台日志
newArr
一样,它只显示4项

CoderByte的问题是:-使用JavaScript语言,让函数WordCount(str)获取要传递的str字符串参数并返回字数 字符串包含(即“永远不要吃小麦丝”将返回4)。单词将由单个空格分隔

var wordCount = function (str) {
    var newArr = str.split(' ');
    var total = 0;
    for (var i = 0; i < newArr.length; i += 1) {
        total += i;
    }
    return total;
};

因为你加的是i而不是1

total += i;
基本上你有

iteration 1 : total = total + 0 = 0 + 0 = 0
iteration 2 : total = total + 1 = 0 + 1 = 1
iteration 3 : total = total + 2 = 1 + 2 = 3
iteration 4 : total = total + 3 = 3 + 3 = 6

你的
总数
=0+1+2+3=6我打字累了
iteration 1 : total = total + 0 = 0 + 0 = 0
iteration 2 : total = total + 1 = 0 + 1 = 1
iteration 3 : total = total + 2 = 1 + 2 = 3
iteration 4 : total = total + 3 = 3 + 3 = 6