如何用ForEach和Filter实现数组姓氏输出及含F姓氏筛选?
代码问题说明
存在的2处核心错误
- filter判断逻辑错误:你当前写的
item.last_name === 'F'是判断姓氏完全等于字符F,而不是包含F,需要改用字符串的includes()方法实现包含匹配,如果需要忽略大小写可以额外统一转大小写处理。 - 死代码+逻辑顺序错误:你在filter的回调函数里把
console.log(filtered);写在了return语句之后,return执行后后面的代码永远不会触发,同时filtered是filter方法执行完成后才会被赋值的变量,在回调内部访问也会抛出未定义的引用错误。
修正后可运行代码
fetch('https://reqres.in/api/users?per_page=12') .then((response) => { return response.json(); }) .then((body) => { // 第一步:打印所有用户姓氏 body?.data.forEach((item) => { console.log(item.last_name); }) // 第二步:筛选姓氏包含F的条目,需要大小写不敏感可以改成item.last_name.toLowerCase().includes('f') const filtered = body?.data.filter((item) => { return item.last_name.includes('F'); }); // 打印筛选结果 console.log(filtered); });
内容的提问来源于stack exchange,提问作者Denis Prudnikov
相关产品推荐
相关产品推荐

