JavaScript空数组拼接字符出现Undefined前缀问题求助
问题分析与解决
问题出在空数组的初始值上:你创建的是空数组,array[0]在第一次循环时的初始状态是undefined。JavaScript中,当undefined和字符串进行+运算时,会自动把undefined转换为字符串"undefined"再和目标字符拼接,这就是结果里出现undefined的原因。
解决办法
方法一:提前初始化数组元素
在循环开始前,把array[0]设为空字符串:
// 初始化数组时直接赋值 const array = ['']; // 或者先创建空数组再赋值 // const array = []; // array[0] = ''; while(e <= f){ array[0] += x.charAt(e); e++; console.log(array[0]); }
方法二:循环内处理初始值
如果不想提前初始化,可以在拼接时用逻辑或运算符||兜底空值:
while(e <= f){ array[0] = (array[0] || '') + x.charAt(e); e++; console.log(array[0]); }
两种方法都能避免undefined被混入结果中,推荐第一种,逻辑更清晰,性能也更优。
内容的提问来源于stack exchange,提问作者Dava Davilion
相关产品推荐
相关产品推荐

