修改HTML内嵌JS代码,筛选收入超50万的超级英雄真实姓名并打印
筛选收入超50万的超级英雄姓名
原代码无法实现需求,核心问题如下:
- 未遍历
taxForms数组,单个if判断只能检查固定位置元素,无法覆盖所有超级英雄数据 taxForms[income]写法错误:income不是数组索引值,要访问数组中每个对象的收入属性,需先获取单个对象,再通过.income调用- 输出的是整个数组,而非符合条件的超级英雄真实姓名
以下是几种可行的修正方案:
方案一:使用forEach遍历数组(简洁直观)
修改HTML中的脚本部分为:
taxForms.forEach(hero => { // 判断当前超级英雄的收入是否超过50万 if (hero.income > 500000) { // 输出符合条件的真实姓名 console.log(hero.realName); } });
方案二:使用普通for循环
如果习惯传统循环写法,也可以用:
for (let i = 0; i < taxForms.length; i++) { const currentHero = taxForms[i]; if (currentHero.income > 500000) { console.log(currentHero.realName); } }
方案三:先筛选再输出(逻辑分离)
先通过filter筛选出符合条件的对象,再遍历输出姓名:
// 筛选收入超50万的超级英雄 const highIncomeHeroes = taxForms.filter(hero => hero.income > 500000); // 遍历输出真实姓名 highIncomeHeroes.forEach(hero => console.log(hero.realName));
运行任意一种方案,控制台都会输出:
Bruce Wayne Selina Kyle
内容的提问来源于stack exchange,提问作者Gabriel
相关产品推荐
相关产品推荐

