首页 > 解决方案 > 在数组任务中排序并返回差异,返回未定义

问题描述

该函数需要将一个未排序的数组(年龄)作为参数,然后返回一个数组:最小数、最大数、它们之间的差异。

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];

}

当参数传递给这个函数时,它返回为未定义。

标签: javascriptarraysfunctionsorting

解决方案


我在您的代码中发现了以下问题。

  1. 没有return定义。

  2. Array.sort()仅执行字符串排序。对于数字排序,您需要定义一个函数。(我已经添加了)

  3. 将相同的数组与赋值运算符一起使用而没有扩展运算符,这将在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]));


推荐阅读