未使用function关键字定义函数后无法打印结果的技术求助
问题分析与解决方案
首先,你初始代码里的语法错误是因为箭头函数的写法不符合规范——你错误地写成了const response = howMany(people) { ... },这完全偏离了箭头函数的定义语法,正确的箭头函数格式应该是const 函数名 = (参数) => { 函数体 },这就是你触发Unexpected token '{'报错的核心原因。
修正后的完整箭头函数代码
你更新后的箭头函数语法已经是正确的了,只需要恢复打印语句,或者确保调用函数后输出结果即可。另外要注意:你的age数组里的元素是字符串类型,虽然JavaScript会自动做类型转换,但显式转为数字能避免字符串比较的潜在问题,让逻辑更严谨:
var age = ["14", "20", "25"]; const howMany = (people) => { let oldCitizen = []; for (let i = 0; i < people.length; i++) { // 显式将字符串转为数字,规避字符串比较的隐患 if (Number(people[i]) >= 15) { oldCitizen.push(people[i]); } } return oldCitizen; } // 调用函数并打印结果 console.log(howMany(age)); // 控制台输出:["20", "25"]
关于你PHP嵌入调用的问题
你后面用PHP输出的<script>howMany(["14", "20", "25"]);</script>只是调用了函数,但没有打印结果,所以浏览器控制台不会显示内容,需要修改为:
<?php echo '<script type="text/javascript">console.log(howMany(["14", "20", "25"]));</script>'; ?>
额外优化:用数组方法简化代码
如果想让代码更简洁优雅,还可以用数组的filter方法替代循环,箭头函数配合filter能大幅精简代码:
var age = ["14", "20", "25"]; const howMany = (people) => people.filter(item => Number(item) >= 15); console.log(howMany(age)); // 控制台输出:["20", "25"]
内容的提问来源于stack exchange,提问作者RAJA
相关产品推荐
相关产品推荐

