我正在尝试对内部包含整数的数组进行排序,例如:
var array = [[123, 3], [745, 4], [643, 5], [643, 2]];
Run Code Online (Sandbox Code Playgroud)
如何对其进行排序以返回如下内容?
array = [[745, 4], [643, 2], [643, 5], [123, 3]];
Run Code Online (Sandbox Code Playgroud)
小智 32
您可以将自定义比较函数传递给Array.prototype.sort(),如下所示:
var sortedArray = array.sort(function(a, b) { return a - b; });
Run Code Online (Sandbox Code Playgroud)
这将按升序对整数数组进行排序。比较函数应该返回:
0如果你想出a现在之前的整数b0,如果你想b朝见a0如果a和b是一样的所以,对于这个例子,你会想要这样的东西:
var sortedArray = array.sort(function(a, b) {
return b[0] - a[0];
});
Run Code Online (Sandbox Code Playgroud)
如果您想对每个子数组的两个元素进行排序(即按第一个元素降序排序,如果它们相同则按第二个元素降序排序),您可以这样做:
var sortedArray = array.sort(function(a, b) {
if (a[0] == b[0]) {
return a[1] - b[1];
}
return b[0] - a[0];
});
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort。
您可以使用sortmethod 并首先按第一个元素排序,然后按第二个元素排序。
var array = [[123, 3], [745, 4], [643, 5], [643, 2]];
array.sort(([a, b], [c, d]) => c - a || b - d);
console.log(array)Run Code Online (Sandbox Code Playgroud)
小智 9
假设您想按示例中的第一个索引进行排序,则可以使用排序函数来解决您的问题。
let ans = [[123, 3], [745, 4], [643, 5], [643, 2]].sort( (a, b) => {
return b[0] - a[0]
})
console.log(ans)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23047 次 |
| 最近记录: |