JavaScript数组调用join方法后按下标取值仅返回单个字符问题问询
问题产生原因
- 你代码中调用
arrType.join(", ")的返回值是字符串类型,并不是数组。join()方法的作用就是把数组的所有元素拼接成一个单独的字符串,所以vehicleType本质是类似"text1, text2, text3"的字符串,用下标访问时自然会返回对应位置的单个字符,你打印看到的类数组格式只是字符串内容看起来像数组而已。 - 你提到的typeof检测结果为数组是错误判断:JS中
typeof运算符检测数组返回的结果是object,检测字符串返回的是string,你大概率是误把对arrType的检测结果当成了vehicleType的结果,验证数组类型请使用Array.isArray()方法。
解决方法
根据你的使用场景选择以下任意一种方案即可:
- 直接使用原始数组
arrType访问元素:你存储所有option文本的arrType本身就是标准数组,直接通过下标访问即可拿到完整的单条文本,示例:
// 取第一个option的文本 console.log(arrType[0]) // 输出 text1
- 如果只能拿到拼接后的
vehicleType字符串,可通过split()方法转回数组再访问。如果你的字符串首尾包含[、]符号,需要先去除后再拆分:
// 先去除首尾方括号,再按`, `分隔符拆回数组 const typeArr = vehicleType.slice(1, -1).split(", "); console.log(typeArr[0]) // 输出 text1
内容的提问来源于stack exchange,提问作者Denes
相关产品推荐
相关产品推荐

