Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 包含从字符串中平均字长的函数?_Javascript_Function_For Loop_Average - Fatal编程技术网

Javascript 包含从字符串中平均字长的函数?

Javascript 包含从字符串中平均字长的函数?,javascript,function,for-loop,average,Javascript,Function,For Loop,Average,这是我第一次接触JavaScript,我正在编写一个函数,该函数将输出以下内容: 字符串中的单个单词, 字符总数, 总字数, 空格计数, 最后是平均字长。 到目前为止,我已经完成了所有的方面,除了我正在努力的平均过程 我的代码: var superCounter = function(x) { var charCount = x.length; var wordCount = x.split(" ").length; var whiteSpace = wordCount - 1;

这是我第一次接触JavaScript,我正在编写一个函数,该函数将输出以下内容:

字符串中的单个单词, 字符总数, 总字数, 空格计数, 最后是平均字长。 到目前为止,我已经完成了所有的方面,除了我正在努力的平均过程

我的代码:

var superCounter = function(x) {
  var charCount = x.length;
  var wordCount = x.split(" ").length;
  var whiteSpace = wordCount - 1; 
  var wordArray = [x.split(" ")];
  var wordAvg = 0;
  for (var i = 0; i < wordCount.length; i++){
    wordAvg += wordArray[i];
  }
  var avgLen = wordAvg / wordCount;
  console.log(("Words: " + wordArray[0]), "Character count: " + charCount, "Word count: " + wordCount, "Whitespace count: " + whiteSpace, "Word length average: " + avgLen);
};

superCounter("This function will analyze strings");
我知道我不知何故需要I的长度,但我尝试应用长度的每一种方法都不起作用

想法


谢谢大家!

您几乎成功了,只做了几处小改动,您的代码运行得很好

wordArray应声明如下:

var wordArray = x.split(" ");
然后需要将单词字符长度的总和更正为wordAvg

更改此项:

wordAvg += wordArray[i];
为此:

wordAvg += wordArray[i].length;
应该是

 wordAvg += wordArray[i].length;

应该是这样的:

var superCounter = function(x) {
    var charCount = x.length;
    var wordCount = x.split(" ").length;
    var whiteSpace = wordCount - 1; 
    var wordArray = x.split(" ");
    var wordAvg = 0;
    for (var i = 0; i < wordCount; i++){
        wordAvg += wordArray[i].length;
    }
    var avgLen = wordAvg / wordCount;
    console.log(("Words: " + wordArray), "Character count: " + charCount, "Word count: " + wordCount, "Whitespace count: " + whiteSpace, "Word length average: " + avgLen);
};

superCounter("This function will analyze strings");

也许可以试试这样:

 function jCounter(data) { 
     var strArr = data.split(' ');
     var strChar = data.length;
     var objStr = strArr.length;   
     var strSpaces = objStr - 1;

     var numArr = [];
     for (i=0; i<objStr; i++) {
        numArr.push(strArr[i].length); 
     }

     var sum = 0;
     for (i=0; i<numArr.length; i++) {
        sum = sum + numArr[i];
     } 

     var avg = sum/objStr;
     var strObj = {}; 

     strObj.words = objStr;
     strObj.chars = strChar;
     strObj.avgLength = avg ;
     strObj.spaces = strSpaces;

     console.log(strObj);
   } 

   jCounter("Coding is challenging");

我是一个数字。它没有长度。你是指数组中该元素的长度吗?你尝试了什么?你把字符串添加到一个数字中。说使用长度无效无助于任何人的诊断,具体发生了什么?您尝试了什么?更改此变量wordArray=[x.split];对于该变量,wordArray=x.split;变量,然后更改此wordAvg+=wordArray[i];对这个wordAvg+=wordArray[i].length;它是字符总数除以字数,如var avgLen=wordArray.join.length/wordCount->
var superCounter = function(x) {
    var charCount = x.length;
    var wordCount = x.split(" ").length;
    var whiteSpace = wordCount - 1; 
    var wordArray = x.split(" ");
    var wordAvg = 0;
    for (var i = 0; i < wordCount; i++){
        wordAvg += wordArray[i].length;
    }
    var avgLen = wordAvg / wordCount;
    console.log(("Words: " + wordArray), "Character count: " + charCount, "Word count: " + wordCount, "Whitespace count: " + whiteSpace, "Word length average: " + avgLen);
};

superCounter("This function will analyze strings");
 function jCounter(data) { 
     var strArr = data.split(' ');
     var strChar = data.length;
     var objStr = strArr.length;   
     var strSpaces = objStr - 1;

     var numArr = [];
     for (i=0; i<objStr; i++) {
        numArr.push(strArr[i].length); 
     }

     var sum = 0;
     for (i=0; i<numArr.length; i++) {
        sum = sum + numArr[i];
     } 

     var avg = sum/objStr;
     var strObj = {}; 

     strObj.words = objStr;
     strObj.chars = strChar;
     strObj.avgLength = avg ;
     strObj.spaces = strSpaces;

     console.log(strObj);
   } 

   jCounter("Coding is challenging");