【问题标题】:Sort and return difference in an array task, returning Undefined在数组任务中排序并返回差异,返回未定义
【发布时间】:2020-07-05 18:22:22
【问题描述】:
该函数需要一个未排序的数组(年龄)作为参数,然后返回一个数组:最小数,最大数,它们之间的差异。
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];
}
当参数传递给这个函数时,它会以未定义的形式返回。
【问题讨论】:
标签:
javascript
arrays
function
sorting
【解决方案1】:
我在您的代码中发现了以下问题。
未定义return。
Array.sort() 仅执行字符串排序。对于数字排序,您需要定义一个函数。 (我已经添加了)
将相同的数组与赋值运算符一起使用而没有展开运算符,这将复制firstArr、ages、sortArr中的相同实例
希望这个解决方案是您正在寻找的。p>
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]));