如何将数字数组转换为字符串?我的JS代码为何未生效?
问题分析与解决
你的代码问题出在**map方法的使用上**:map不会修改原数组,而是返回一个经过转换的新数组,你只是调用了map但没把返回值赋值给this.userIds,所以原数组依然是数字类型。
修复方案1:正确使用map
把map的返回值重新赋值给this.userIds:
this.userIds = this.userIds.map(e => e.toString())
修复方案2:在收集时直接转换(更高效)
没必要先收集数字再统一转换,在push的时候直接转成字符串,减少一次遍历:
collectIds() { this.array.forEach((e, i) => { if (this.array[i].details.user_id !== undefined) { // 直接转成字符串再存入数组 this.userIds.push(this.array[i].details.user_id.toString()) } }); console.log("userIds: ", this.userIds) // 输出:["8", "8", "8"] }
关于你尝试的toString().split(',')
这种写法虽然能得到字符串数组(["8","8","8"]),但存在局限性:如果数组元素本身包含逗号(比如字符串类型的元素),split会错误拆分。对于数字数组虽然能用,但map是更规范、通用的做法。
内容的提问来源于stack exchange,提问作者monny
相关产品推荐
相关产品推荐

