Chrome DevTools控制台输出[f]而非数组数值的JavaScript问题
问题原因与解决方案
你的代码核心问题出在percentageOfWorld1函数的返回逻辑上:
- 函数内部计算了
((population / 7900) * 100),但没有将这个计算结果返回 - 反而返回了函数自身
percentageOfWorld1,导致每次调用该函数时,得到的都是函数引用,而非预期的百分比数值
修正后的代码
// 将人口数转换为占世界人口百分比的函数 function percentageOfWorld1 (population) { // 直接返回计算得到的百分比结果 return (population / 7900) * 100; } // 不同地区的人口数组(单位:百万) const populations = [331.9, 1458, 1380, 147.2]; // 检查数组是否包含4个元素 console.log(populations.length === 4); // 将数组中每个元素转换为百分比 const percentages = [ percentageOfWorld1(populations[0]), percentageOfWorld1(populations[1]), percentageOfWorld1(populations[2]), percentageOfWorld1(populations[3]) ]; // 输出结果数组 console.log(percentages);
补充说明
修正后,每次调用percentageOfWorld1都会返回对应的百分比数值,percentages数组会成为预期的数值数组,控制台会输出类似[4.20, 18.46, 17.47, 1.86](保留两位小数后的近似值)的结果。
内容的提问来源于stack exchange,提问作者Dalton
相关产品推荐
相关产品推荐

