javascript - 在数组任务中排序并返回差异,返回未定义
问题描述
该函数需要将一个未排序的数组(年龄)作为参数,然后返回一个数组:最小数、最大数、它们之间的差异。
function differenceInAges(ages){
let firstArr = ages;
let sortArr = firstArr.sort();
let last = sortArr.slice(-1);
let diff = last - sortArr[0];
let ansArr = [sortArr[0], last, diff];
}
当参数传递给这个函数时,它返回为未定义。
解决方案
我在您的代码中发现了以下问题。
没有
return
定义。Array.sort()
仅执行字符串排序。对于数字排序,您需要定义一个函数。(我已经添加了)将相同的数组与赋值运算符一起使用而没有扩展运算符,这将在
firstArr
,ages
,中复制相同的实例sortArr
希望这个解决方案是您正在寻找的。
function differenceInAges(ages){
let firstArr = ages;
let sortArr = [...firstArr].sort(sortNumber);
let last = sortArr.slice(-1)[0];
let diff = last - sortArr[0];
let ansArr = [sortArr[0], last, diff];
return ansArr;
}
function sortNumber(a, b) {
return a - b;
}
console.log(differenceInAges([10, 20, 5, 25, 30]));
推荐阅读
- php - 此登录代码的 mysqli 等效项是什么?
- python - 如何解决在 Mac 上运行的 Python 中的导入错误?
- python-3.x - sqlite3 错误:您没有为绑定 1 提供值
- uwp - 媒体基础库中的 UWP AAC 编码,未注册类
- php - Bootstrap手风琴在选择另一个后不会折叠
- c# - C# 无法避免嵌套的 try-catch
- docker - 在 Docker 中为 Ubuntu 16.04 运行 Systemd,对于 Ubuntu 18.04 它可以工作
- javascript - 提交表单时通过 JS 验证号码
- mysql - 插入时出错
- angular - 如何在 Ionic 无限滚动中从 Wordpress API 输出累积列表