nodejs sort 遍历数组 条件有三个参数v1 v2 v3 都是int型 先比较v1 如果v1相等 在比较v2 v2也相等 最后在比较v3 按照从大到小排列 完整代码
时间: 2024-12-27 17:31:03 浏览: 5
在Node.js中,如果你想按照给定条件对数组进行排序,可以使用`Array.prototype.sort()`方法结合一个自定义的比较函数。这里是一个完整的示例代码:
```javascript
function compareValues(v1, v2, v3) {
// 比较规则:先看v1,然后v2,最后v3
if (v1 > v2) {
return -1; // v1较大,返回负数使数组降序排列
} else if (v1 < v2) {
return 1; // v1较小,返回正数使数组升序排列
} else { // v1等于v2
if (v2 > v3) {
return -1;
} else if (v2 < v3) {
return 1;
} else {
return 0; // v2也等于v3,保持不变
}
}
}
// 示例数组
const arr = [4, 3, 5, 2, 5, 1];
// 使用自定义比较函数排序
arr.sort(compareValues);
console.log(arr); // 输出:[5, 5, 4, 3, 2, 1](按从大到小)
相关问题
nodejs sort 遍历数组 条件有三个参数v1 v2 v3 都是int型 按照从大到小排列 先比较v1 如果v1相等 在比较v2 v2也相等 最后在比较v3 完整代码
在Node.js中,你可以使用`Array.prototype.sort()`函数结合三元条件表达式来实现这个需求。假设你有一个名为`arr`的数组,包含对象,每个对象都有`v1`, `v2`, 和 `v3` 属性。以下是完整的代码示例:
```javascript
let arr = [
{ v1: 5, v2: 3, v3: 2 },
{ v1: 7, v2: 4, v3: 1 },
{ v1: 5, v2: 2, v3: 3 },
// ...其他对象
];
// 定义排序函数
function customSort(a, b) {
if (a.v1 > b.v1) {
return 1; // a应排在b前面
} else if (a.v1 < b.v1) {
return -1; // b应排在a前面
} else if (a.v2 > b.v2) {
return 1;
} else if (a.v2 < b.v2) {
return -1;
} else {
return a.v3 > b.v3 ? 1 : (a.v3 < b.v3 ? -1 : 0);
}
}
// 使用sort()函数并传入自定义排序函数
arr.sort(customSort);
console.log(arr); // 输出按v1降序、v2降序、v3降序排序后的数组
阅读全文