Javascript .toUpperCase包含一个数组元素
为什么它不使用数组的元素,而不是所有数组的元素。 它是嵌套循环Javascript .toUpperCase包含一个数组元素,javascript,arrays,Javascript,Arrays,为什么它不使用数组的元素,而不是所有数组的元素。 它是嵌套循环 for (var q = 0; q < array.length; q++) { arraySymb[k] = array[q].toUpperCase() ; break; } (var q=0;q
for (var q = 0; q < array.length; q++) {
arraySymb[k] = array[q].toUpperCase() ;
break;
}
(var q=0;q
arraySymb[k]=array[q].toUpperCase();
打破
}
控制台:
未捕获类型错误:数组[q]。toUpperCase不是函数
请确保数组元素是字符串
array[q].toString().toUpperCase()
还有,这不是结束循环吗 首先确保它是一个字符串
for (let q = 0; q < array.length; q++) {
if (typeof array[q] === 'string'){
arraySymb[k] = array[q].toUpperCase() ;
break;
}
else{
debugger; // to examine the value
}
}
for(让q=0;q
您似乎希望将数组转换为全大写。Javascript方便地使用了Array.prototype.map
方法
你想做的事可以用它来完成
arraySymb = array.map(str=>str.toUpperCase())
撇开这一点不谈,显然您遇到的问题是数组的元素不是字符串,因为toUpperCase是一个只有字符串才有的方法。您可以通过循环检查阵列。要识别违规元素,可以使用以下方法:
array.forEach((e, i)=>{
if (typeof e !== 'string')
console.log(e, "is not a string at index=", i)
})
被忽略的一个方面是,错误消息引用了一个未捕获的TypeError,这意味着如果代码要捕获它,那么某些代码可能仍然会执行,直到出现异常,如下所示:
var d=文档;
d、 g=d.getElementById;
var myData=d.g(“myData”);
var arr=[“1”、“ana”、“2”、“bill”、true、“cathy”];
var-arrStr=[];
试一试{
对于(var i=0,k=0;i,那么什么是数组[q]?很明显,它不是有toUpperCase方法的东西/似乎缺少一些代码。另外,数组中的数据类型是什么?如果有字符串数组,它会工作。删除“break”;循环只会循环一次,我非常确定:/另外,请确保数组元素是字符串(即array[q].toString().toUpperCase()
)toUpperCase
仅适用于String
类型的数据。如果确实需要,您需要将数组项转换为字符串。array[q].toString().toUpperCase();