Javascript 作为参数传递的最长字符串的长度

Javascript 作为参数传递的最长字符串的长度,javascript,count,string-length,Javascript,Count,String Length,我似乎无法对这件事保持清醒。我想要的是一个文本框,其中输入123412345、12346并返回传递的最长字符串的整数。所以上面会返回6 我有以下带有文本框的Javascript代码: var titleInput = document.getElementById("textBoxValue"); function countString() { var string = titleInput.value; // Does not work //var string = ["123",

我似乎无法对这件事保持清醒。我想要的是一个文本框,其中输入123412345、12346并返回传递的最长字符串的整数。所以上面会返回6

我有以下带有文本框的Javascript代码:

var titleInput = document.getElementById("textBoxValue");
function countString() 
  {
 var string = titleInput.value; // Does not work
 //var string = ["123", "1234"]; works with out text box returns 4 hard coded
 console.log(string); // returns ["123, 1234"]

 var largest = 0; // set largest to 0
 for (var i = 0; i < string.length; i++) {
   if (string[i].length > largest) {
     largest = string[i].length;

   }
}
 console.log(largest);
}
countString(); 

var titleInput=document.getElementById(“textBoxValue”);
函数countString()
{
var string=titleInput.value;//不起作用
//var string=[“123”,“1234”];使用out文本框返回4个硬编码
console.log(字符串);//返回[“1231234”]
var max=0;//将max设置为0
对于(变量i=0;i最大值){
最大=字符串[i]。长度;
}
}
控制台日志(最大);
}
countString();

我不明白为什么它在硬编码时可以工作,但在从文本框提交时却不能工作。

要从文本框获取数组,可以使用

var titleInput = document.getElementById("text"),
    arr = titleInput.value.split(', ');
要获得最大长度,您可以与其中一个一起使用

  • ES5:

  • ES5:

  • ES5,通过ES6简化,以及:


对于代码的功能,您必须使用split()方法将文本框的值拆分为一个数组,并将其用作“字符串”变量(避免使用保留字作为变量名!)。否则,使用string[i]语句,您将访问字符串的各个字符,而不是由逗号分隔的实际子字符串。所以你的函数应该是这样的:

var titleInput = document.getElementById("textBoxValue");

function countString() {
var str = titleInput.value.split(',');
console.log(str);

var largest = 0;
for (var i = 0; i < str.length; i++)
    if (str[i].length > largest)
        largest = str[i].length;
console.log(largest);
}

countString();

var titleInput=document.getElementById(“textBoxValue”);
函数countString(){
var str=titleInput.value.split(',');
console.log(str);
var最大值=0;
对于(变量i=0;i最大值)
最大=str[i]。长度;
控制台日志(最大);
}
countString();

请添加一个标记以指示您使用的语言。您是否使用预处理器
文档。getElementById(“text”BoxValue)看起来不像普通的JS?另外,当
string
是一个javascript原生对象时,我会避免使用变量名,比如
string
。getElementById(“textBoxValue”);应该是这样的。没有解释->一文不值!(什么是ES6?…)@Sam你可以阅读我链接的MDN文章。ES6是EcmaScript的新版本,目前只是一个草稿,并支持小型浏览器。它引入了令人惊讶的功能,希望在几年内可以安全使用。这是必要的。我必须从str中删除空白,我不想让它出现在计数中。谢谢你的解释现在我的头被它缠绕着:)
Math.max.apply(null, arr.map(function(str){
    return str.length;
}));
Math.max(...arr.map(str => str.length));
var titleInput = document.getElementById("textBoxValue");

function countString() {
var str = titleInput.value.split(',');
console.log(str);

var largest = 0;
for (var i = 0; i < str.length; i++)
    if (str[i].length > largest)
        largest = str[i].length;
console.log(largest);
}

countString();