尝试记录所有以“b”开头的单词。 我收到以下错误: 未捕获的TypeError:query [i] .charAt不是函数。 不知道我做错了什么。
var query= [34,"beer","bbq","bees","aa","cc", "bb"];
for(var i=0;i<=query.length;i++){
if(query[i].charAt(0)=="b"){
console.log(query[i]);
}
}
答案 0 :(得分:4)
问题是数组中的第一个元素是数字。 charAt
仅为字符串定义。试试这个
var query= ["34","beer","bbq","bees","aa","cc", "bb"];
或者,您可以将query[i].charAt(0)=="b"
更改为(query[i]+"").charAt(0)=="b"
。这将为数组的每个元素,将其转换为字符串,然后您可以在其上调用charAt
。
答案 1 :(得分:1)
使用charAt()将您的行更改为:
if ( /^b/.test( query[i] ) ) {
此外,你的for循环中有一个错误,它应该是:
for(var i=0;i<query.length;i++){
因为你从索引0开始...