如何基于用户输入使用filter()方法筛选出仅含数字3的数组?
问题解决方法
问题根源
通过prompt获取的用户输入是字符串类型,使用split("")分割后得到的数组元素都是字符串(例如"3"),而你的find_3函数中使用严格相等运算符===比较字符串和数字3,因类型不匹配导致筛选失败。
修复方案
方案一:调整比较逻辑,匹配字符串"3"
直接修改判断条件,让它检查字符串形式的"3":
var number = prompt("请输入数字", ""); var matrix = number.split(""); function find_3(value) { return value === "3"; } var result = matrix.filter(find_3); document.write(result);
方案二:将数组元素转为数字后筛选
先把分割后的字符串元素转换成数字,再用原判断逻辑筛选:
var number = prompt("请输入数字", ""); // 分割后逐个转换为数字 var matrix = number.split("").map(item => parseInt(item)); function find_3(value) { return value === 3; } var result = matrix.filter(find_3); document.write(result);
内容的提问来源于stack exchange,提问作者user24215159
相关产品推荐
相关产品推荐

