当我尝试运行此js时,我收到带有split的typeError。我不确定如何修复它,我已按照教科书中的说明正确定义了它。
var current;
var string;
console.log("Enter words separated by spaces.");
prompt(string);
var array = [];
array = string.split(" ");
for(i = 0; i < array.length; i++)
{
var frequency = 0;
current = array[i];
for(i = 0; i < array.length; i++)
{
if(current === array[i])
frequency++;
}
console.log(current + " - " + frequency);
}
}
正常运行时,该功能应产生如下输出:嘿-1。 它计算每个唯一单词的出现频率,并在单词旁边显示出现在字符串中的次数。任何帮助将不胜感激,谢谢。
答案 0 :(得分:1)
主要问题是您没有从提示中阅读string
。在下面的示例中,我将结果存储为s
。
您还需要在第二个for循环中再次使用i
。为此使用另一个字母(约定为j
):
var current;
var string;
var s;
console.log("Enter words separated by spaces.");
s = prompt(string);
var array = [];
array = s.split(" ");
console.log(array);
for(i = 0; i < array.length; i++){
var frequency = 0;
current = array[i];
for(j = 0; j < array.length; j++){
if(current === array[j]) frequency++;
}
console.log(current + " - " + frequency);
}
我希望这会有所帮助。
答案 1 :(得分:0)
您可以执行split
而不是.splice
。
我相信这个link会有所帮助。
但是,首先,您必须在数组中搜索“”。
您可以通过string.search(" ")
来实现这一点,它返回找到“”的位置。
此外,您的提示语法错误,应该为:
var something = prompt("Enter words separated by spaces.");
答案 2 :(得分:0)
只有小错误:
prompt
存储在string
中:string = prompt(string);
for
循环另一个变量j
,因此i
不会被覆盖。
var current;
var string;
console.log("Enter words separated by spaces.");
string = prompt(string);
var array = [];
array = string.split(" ");
for (i = 0; i < array.length; i++) {
var frequency = 0;
current = array[i];
for (j = 0; j < array.length; j++) {
if (current === array[j])
frequency++;
}
console.log(current + " - " + frequency);
}