📅  最后修改于: 2023-12-03 14:49:57.827000             🧑  作者: Mango
在Javascript中,可以使用内置的sort()方法对数组进行排序。但是,当数组中包含负数时,可能会遇到问题。本文将介绍如何使用sort()方法对包含负数的数组进行排序。
使用sort()方法对数组进行排序时,默认情况下是按照字符串顺序进行排序的。例如,如果将[-2, 1, -10, 8]输入sort()方法中,则输出会按照字符串顺序排序,即[-10, -2, 1, 8]。
let arr = [-2, 1, -10, 8];
arr.sort();
console.log(arr); // [-10, -2, 1, 8]
要按数字大小进行排序,我们需要提供一个函数作为参数。该函数将接受两个参数,即要比较的元素,需要比较元素1小于、等于或大于元素2。返回值应该是一个负数、零或正数,分别表示元素1小于、等于或大于元素2。
下面是一个排序函数,可以将数组按数字大小进行排序,包括负数:
function compareNumbers(a, b) {
return a - b;
}
对于上面的[-2, 1, -10, 8]数组,我们可以将该函数传递给sort()方法,以便实现按数字大小排序:
let arr = [-2, 1, -10, 8];
arr.sort(compareNumbers);
console.log(arr); // [-10, -2, 1, 8]
下面是完整的Javascript代码,包括定义数组并使用上述函数进行排序:
let arr = [-2, 1, -10, 8];
function compareNumbers(a, b) {
return a - b;
}
arr.sort(compareNumbers);
console.log(arr); // [-10, -2, 1, 8]
使用内置的sort()方法对负数进行排序需要提供比较函数。该函数应该返回一个负数、零或正数,以便按数字大小进行比较。