如何对具有两个字段的对象进行排序

How to sort on objects with two fields?

本文关键字:字段 两个 对象 排序      更新时间:2023-09-26

I 一个形状像的数据结构

[{name:"kevin",major:1, minor:2}]

如果我希望对这些对象的列表进行排序,以便它们按主要顺序排序,次要对象排序后,我将如何排序?

只需定义一个排序回调。

var myData = [{ name: "kevin", major: 1, minor: 2 }, { name: "bob", major: 1, minor: 1 }, { name: "dave", major: 2, minor: 1 }, { name: "john", major: 2, minor: 2 }];
myData.sort(function (a, b) {
    return a.major - b.major || a.minor - b.minor;
});
document.write('<pre>' + JSON.stringify(myData, 0, 4) + '</pre>');

你来了:

var myData = [{
  name: "kevin",
  major: 1,
  minor: 2
}, {
  name: "bob",
  major: 1,
  minor: 1
}, {
  name: "dave",
  major: 2,
  minor: 1
}, {
  name: "john",
  major: 2,
  minor: 2
}];
var mySort = function(a, b) {
  if (a.major == b.major) {
    return a.minor - b.minor;
  } else {
    return a.major - b.major;
  }
};
document.getElementById("results").innerHTML = JSON.stringify(myData.sort(mySort));
<div id="results"></div>