我编写了一个函数来计算单词中的长度和元音,并将它们输出到数组中的对象中。然而我得到错误" word.match()不是函数"其中word是一个字符串。
function wordData(string){
var stringSplit = string.split(' ');
var output = [];
for(var i = 0; i <= stringSplit.length; i++){
var eachWord = stringSplit[i];
var vowel = eachWord.match(/[aeiou]/gi);
var vowelCount = vowel ? vowel.length : 0;
var objectData = {};
objectData.word = eachWord;
objectData.length = eachWord.length;
objectData.vowels = vowelCount;
output.push(objectData);
}
return output;
}
console.log(wordData('some really awesome string'));
任何想法有什么问题?
答案 0 :(得分:6)
for(var i = 0; i <= stringSplit.length; i++)
这会超过你的字符串数组的最后一个索引。因此,它将为undefined
,您无法在match
上致电undefined
。
请改为:
for(var i = 0; i < stringSplit.length; i++)
答案 1 :(得分:4)
索引越界
for(var i = 0; i <= stringSplit.length; i++){
应该是
for(var i = 0; i < stringSplit.length; i++){