为何控制台输出数字而非数组中的实际字符串?(附JS代码)
问题原因及修复方案
问题原因
你当前返回的是随机生成的数组索引数字,而非通过索引获取数组中对应的名字字符串。变量ogaMi是0到数组长度-1之间的随机整数(数组的合法索引),你直接将这个数字拼接进返回文本,所以控制台输出数字而非名字。另外,函数定义了names参数但未使用,直接依赖全局变量arrayNames,属于代码冗余。
修复后的代码
var arrayNames = ["Angela", "Ben", "Jenny", "Michael", "Chloe"]; function whosPaying(names) { var bigBoss = names.length; var ogaMi = Math.floor(Math.random() * bigBoss); return names[ogaMi] + " is paying for the bill"; } console.log(whosPaying(arrayNames));
修复说明
- 使用
names[ogaMi]通过随机索引获取数组中的对应名字,替换原本直接使用的索引数字ogaMi。 - 改为使用函数参数
names操作数组,让函数不再依赖全局变量,调用时传入目标数组即可,提升函数通用性。
内容的提问来源于stack exchange,提问作者ismail
相关产品推荐
相关产品推荐

