如何筛选数组中非损坏元素存入新数组并打印为字符串?
修复数据过滤与打印的JavaScript代码
原代码存在语法逻辑错误,无法正确过滤损坏数据,以下是问题点和修正后的实现:
原代码问题
for循环末尾多了分号:for ( i=0; i < targetDisk.length; i++;)中的分号会破坏循环结构,引发语法错误。if语句后多余的分号:if (targetDisk[i] !== corruptionSymbol);的分号会让if条件判断失效,后续的push操作会无条件执行,无法过滤损坏标识ø。- 循环变量
i未声明:直接使用未声明的变量会创建全局变量,不符合编码规范。 - 缺少打印逻辑:没有将处理后的
newDisk转换为字符串并输出到终端的代码。
修正后的代码
var targetDisk = [ 'E', 'ø', '-', 'C', 'ø', 'o', 'r', 'ø', 'ø', 'p', '\'', 'ø', 's', ' ', 'E', 'v', 'ø', 'i', 'ø', 'ø', 'l']; var newDisk = []; var corruptionSymbol = 'ø'; // 修复循环语法,声明变量i,移除多余分号 for (let i = 0; i < targetDisk.length; i++) { // 移除if语句后的分号,确保条件判断生效 if (targetDisk[i] !== corruptionSymbol) { newDisk.push(targetDisk[i]); } } // 将数组转为字符串并打印到终端 console.log(newDisk.join(''));
代码说明
- 修复
for循环的语法错误,用let声明循环变量i,避免全局变量污染。 - 删除
if语句后的分号,确保只有当元素不是损坏标识时才添加到newDisk。 - 使用
join('')将newDisk数组转换为字符串,再通过console.log打印到终端,最终输出结果为E-Corp's Evil。
内容的提问来源于stack exchange,提问作者Lee Cassamo
相关产品推荐
相关产品推荐

