【发布时间】:2021-07-19 18:14:21
【问题描述】:
这里的第一个问题...大家好! 所以,我正在做一个函数,我应该从一个数组中获取更高和更低的数字,我得到了这个代码:
const arraySort = (numbers) =>{
if (!numbers) return console.log('No numbers');
if (Array.isArray(numbers) === false) return console.log('No array!');
if (numbers.includes(undefined)) return console.log('undefined in the array');
let newnumbers=numbers.sort();
let newArray = [newnumbers.reverse().pop(),newnumbers.pop()];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
我得到的是“数组 [4] 中的较高和较低的数字是 [-5,3]”。为什么我的 numbers 参数被覆盖了?我尝试创建 newnumbers 变量以使用 .pop() 和 .sort() 方法,但原始变量仍然被覆盖,我真的不知道为什么。有人可以给我一些启示吗? 提前致谢!
【问题讨论】:
-
sort()修改数组。在排序之前复制数组。 -
newnumbers不是数组的副本。这是第二个变量,指向与numbers相同的数组。您可以使用numbers.slice()进行复制。
标签: javascript variables parameters