参数被覆盖
Parameter getting overwritten
第一个问题...大家好!
所以,我正在做一个函数,我应该从数组中获取更高和更低的数字,我得到了这个代码:
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}]`);
}
而我得到的是 'The higher and lower number from the array [4] is [-5,3]'。为什么我的 numbers 参数被覆盖了?我尝试创建 newnumbers 变量以使用 .pop() 和 .sort() 方法,但原始变量仍然被覆盖,我真的不知道为什么。有人可以给我一些启发吗?
提前致谢!
reverse()
和 sort()
修改原始数组。所以在这里我取排序数组的第一个和最后一个索引。
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');
numbers.sort();
let newArray = [numbers[0], numbers[numbers.length -1]];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
arraySort([4,5,1,2]);
对原数组进行排序和反向修改。如果您不想使用扩展运算符改变它们,请改为创建一个深拷贝。我更新了以下功能:
var 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]
newnumbers.sort();
console.log(newnumbers)
let newArray = [newnumbers[newnumbers.length - 1],newnumbers[0]];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
代码的最后一部分是修改原始数组:
sort(), reverse(), pop()
都影响原数组
你应该从复印开始。
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];
newnumbers.sort();
let newArray = [newnumbers[newnumbers.length-1],newnumbers[0]];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
arraySort([1,2,6,3,5,4]);
pop()
删除数组元素,因此在返回最大和最小元素时最好使用索引。
第一个问题...大家好! 所以,我正在做一个函数,我应该从数组中获取更高和更低的数字,我得到了这个代码:
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}]`);
}
而我得到的是 'The higher and lower number from the array [4] is [-5,3]'。为什么我的 numbers 参数被覆盖了?我尝试创建 newnumbers 变量以使用 .pop() 和 .sort() 方法,但原始变量仍然被覆盖,我真的不知道为什么。有人可以给我一些启发吗? 提前致谢!
reverse()
和 sort()
修改原始数组。所以在这里我取排序数组的第一个和最后一个索引。
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');
numbers.sort();
let newArray = [numbers[0], numbers[numbers.length -1]];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
arraySort([4,5,1,2]);
对原数组进行排序和反向修改。如果您不想使用扩展运算符改变它们,请改为创建一个深拷贝。我更新了以下功能:
var 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]
newnumbers.sort();
console.log(newnumbers)
let newArray = [newnumbers[newnumbers.length - 1],newnumbers[0]];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
代码的最后一部分是修改原始数组:
sort(), reverse(), pop()
都影响原数组
你应该从复印开始。
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];
newnumbers.sort();
let newArray = [newnumbers[newnumbers.length-1],newnumbers[0]];
console.log(`The higher and lower number from the array [${numbers}] is [${newArray}]`);
}
arraySort([1,2,6,3,5,4]);
pop()
删除数组元素,因此在返回最大和最小元素时最好使用索引。