📅  最后修改于: 2023-12-03 14:45:01.192000             🧑  作者: Mango
在 p5.js 中,我们可以使用排序()函数来对数组中的元素进行排序。这个函数可以接受一个参数,用来指定排序的方法。
array.sort([compareFunction])
排序后的数组。
以下是一个最简单的示例,使用排序()函数对一个数组进行排序,并将结果打印到控制台上。
let numbers = [1, 4, 2, 10, 3];
numbers.sort();
console.log(numbers);
// Output: [1, 10, 2, 3, 4]
这里我们没有传递任何参数给排序()函数,因此它使用默认的排序方法,按照转换为字符串的各个字符的Unicode位点进行排序。
如果我们想使用自己的方法进行排序,我们可以提供一个比较函数。这个函数接收两个参数,分别表示要比较的元素。如果第一个参数比第二个参数小,则返回一个负数;如果第一个参数等于第二个参数,则返回0;如果第一个参数比第二个参数大,则返回一个正数。
以下是一个使用比较函数进行排序的示例。
let numbers = [1, 4, 2, 10, 3];
numbers.sort(function(a, b) {
return a - b;
});
console.log(numbers);
// Output: [1, 2, 3, 4, 10]
这里我们传递了一个函数给排序()函数,该函数按照升序对数组进行排序。
如果我们要对一个包含对象的数组进行排序,我们可以提供一个比较函数来指定排序方法。这个比较函数接收两个参数,分别表示要比较的两个对象。
以下是一个使用比较函数对对象数组进行排序的示例。
let items = [
{name: 'apple', value: 10},
{name: 'banana', value: 3},
{name: 'cherry', value: 25},
{name: 'pear', value: 7}
];
items.sort(function(a, b) {
return a.value - b.value;
});
console.log(items);
// Output: [
// {name: 'banana', value: 3},
// {name: 'pear', value: 7},
// {name: 'apple', value: 10},
// {name: 'cherry', value: 25},
// ]
这里我们传递了一个比较函数,该函数按照value属性的值进行升序排序。
let items = [
{name: 'apple', value: 10},
{name: 'pear', value: 10},
{name: 'banana', value: 3},
{name: 'cherry', value: 25}
];
items.sort(function(a, b) {
if (a.value === b.value) {
return a.name > b.name ? 1 : -1;
}
return a.value - b.value;
});
console.log(items);
// Output: [
// {name: 'banana', value: 3},
// {name: 'apple', value: 10},
// {name: 'pear', value: 10},
// {name: 'cherry', value: 25},
// ]
这里我们首先按照value属性进行比较,如果相同,则按照name属性进行比较。