You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选数组中非损坏元素存入新数组并打印为字符串?

修复数据过滤与打印的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(''));

代码说明

  1. 修复for循环的语法错误,用let声明循环变量i,避免全局变量污染。
  2. 删除if语句后的分号,确保只有当元素不是损坏标识时才添加到newDisk。
  3. 使用join('')将newDisk数组转换为字符串,再通过console.log打印到终端,最终输出结果为E-Corp's Evil。

内容的提问来源于stack exchange,提问作者Lee Cassamo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:46:04