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

JavaScript从混合字符数字数组中删除数字运行报错如何解决

报错原因
  • startsWith()是字符串专属实例方法,数组中的数字类型元素调用该方法时会触发类型错误,这是代码直接报错的核心原因。
  • 逻辑判断不符合需求:typeof 1的返回值是字符串"number",即使是字符串类型的元素也不可能以"number"为开头,完全无法实现过滤数字的效果。
  • 方法选择错误:map方法会返回和原数组长度完全一致的新数组,无法实现「过滤删除元素」的需求,该场景应该使用filter方法。
修复代码

你的需求是过滤混合数组中的数字元素、仅保留字符串元素,直接判断元素类型即可,正确代码如下:

let mix = [1, 2, 3, "E", 4, "l", "z", "e", "r", 5, "o"];

let result = mix.filter(item => typeof item === "string");

console.log(result); // 运行输出:['E', 'l', 'z', 'e', 'r', 'o']

如果你的实际需求是保留原数组长度、将数字替换为空字符串,再使用map方法,对应代码如下:

let mix = [1, 2, 3, "E", 4, "l", "z", "e", "r", 5, "o"];

let result = mix.map(item => typeof item === "string" ? item : "");

console.log(result); // 运行输出:['', '', '', 'E', '', 'l', 'z', 'e', 'r', '', 'o']

内容的提问来源于stack exchange,提问作者Õmàr Tãwfêk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:30:01