str.split不是javascript中的函数错误
当我在Sublime中输入以下内容时,我不断收到一个错误:str.split不是javascript中的函数错误,javascript,split,Javascript,Split,当我在Sublime中输入以下内容时,我不断收到一个错误: 函数最长字(str){ var结果=str[0]; str=str.split(“”); 对于(变量i=0;iresult.length){ 结果=str[i]; } } 返回结果; } var句子=[“敏捷的棕色狐狸跳过了懒狗。”]; console.log(最长的单词(句子))您正在尝试拆分数组,而不是字符串。以下代码已更正 function longestWord(str){ var result = str[0];
函数最长字(str){
var结果=str[0];
str=str.split(“”);
对于(变量i=0;iresult.length){
结果=str[i];
}
}
返回结果;
}
var句子=[“敏捷的棕色狐狸跳过了懒狗。”];
console.log(最长的单词(句子))代码>您正在尝试拆分数组,而不是字符串。以下代码已更正
function longestWord(str){
var result = str[0];
str = **result**.split(' ');
for(var i = 0; i < str.length; i++){
if(str[i].length > result.length){
result = str[i];
}
}
return result;
}
函数最长字(str){
var结果=str[0];
str=**结果**.分割(“”);
对于(变量i=0;iresult.length){
结果=str[i];
}
}
返回结果;
}
功能性更强,读者更友好
函数getLargestWord(StringOrray){
var words=stringorary.toString().match(//\w+/gi);///toString..如果是数组,则不需要它
var wordLength=words.map((e,i)=>i=e.length);
var highestNumber=Math.max.apply(null,字长);
返回单词[wordLength.indexOf(highestNumber)];
}
var句子=“敏捷的棕色狐狸跳过了懒狗。”;
log(getLargestWord(句子))
您的问题是将一个字符串数组的参数传递到函数中,而不仅仅是传递字符串
还请注意,几乎总有比使用for循环更好的方法。用于遍历数组并返回单个值:
变量最长=函数(str){
返回str.split(“”).reduce(函数(长、当前){
返回cur.length>long.length?cur:long;
}, '');
};
var str=‘敏捷的棕色狐狸跳过了懒狗’;
console.log(最长(str))代码>函数最长字(str){
var结果=str[0];
str=str.split(“”);
对于(变量i=1;iresult.length){
结果=str[i];
}
}
返回结果;
}
var句子=“敏捷的棕色狐狸跳过了懒狗。”;
写(最长的单词(句子));
我遇到了同样的最长单词挑战,我没有找到简单的解决方法,所以我创建了一个方法将一个句子拆分为一个数组,因为str.split()在那个特定的平台上不起作用
function splitArray(sentence){
var arrayPosition = 0;
var oneWord = "";
var newSentence = sentence + " ";
var splitArray = new Array();
for(var j = 0; j < newSentence.length; j++){
if(newSentence[j] === " "){
splitArray.push(oneWord);
arrayPosition++;
oneWord = "";
}else{
if(!isNaN(newSentence[j])){
//don't add to the string
}else{
oneWord += newSentence[j];
}
}
}
return splitArray;
};
函数拆分数组(句子){
var arrayPosition=0;
var oneWord=“”;
var newSentence=句子+“”;
var splitArray=新数组();
对于(var j=0;j
此函数返回传递的句子中每个单词的数组,不将整数作为字符或字符串。这是因为您试图拆分数组
而是传递一个字符串
function longestWord(str) {
var result = str[0];
str = str.split(' ');
for (var i = 1; i < str.length; i++) {
if (str[i].length > result.length) {
result = str[i];
}
}
return result;
}
var sentence = "the quick brown fox jumped over the lazy dog.";
document.write(longestWord(sentence));
函数最长字(str){
var结果=str[0];
str=str.split(“”);
对于(变量i=1;iresult.length){
结果=str[i];
}
}
返回结果;
}
var句子=“敏捷的棕色狐狸跳过了懒狗。”;
写(最长的单词(句子));
“我做错了什么?”---您试图调用的不是函数的东西。您作为str
传递了什么?什么是str
?请举例说明如何调用longestWord('您在这里传递的是什么?')
当函数需要字符串时,为什么要将数组传递给函数?@Mike-这是一种非常有用的信息,仅供参考。我建议改为更改传递的值。让函数接受带有单个元素的数组似乎不合理代码>并与之进行比较str[i]
的长度不能超过当前的result
。
function longestWord(str) {
var result = str[0];
str = str.split(' ');
for (var i = 1; i < str.length; i++) {
if (str[i].length > result.length) {
result = str[i];
}
}
return result;
}
var sentence = "the quick brown fox jumped over the lazy dog.";
document.write(longestWord(sentence));