简单函数:排序对象数组

在前端开发中,经常需要对包含多个对象的数组进行排序。本文将介绍一个简单的函数来实现这个功能。

排序方式

在 JavaScript 中,可以使用 sort() 方法来对数组进行排序。该方法接受一个用于元素比较的函数作为参数。该函数应当返回一个数字,表示两个元素的相对顺序。

例如,以下代码将一个包含数字的数组按从小到大的顺序排序:

----- --- - --- -- -- -- ---
------------ -- -- - - ---
----------------- -- --- -- -- -- --

对象属性排序

如果要对包含对象的数组进行排序,通常需要指定某个属性作为排序依据。我们可以编写一个比较函数来实现这一点。

假设我们有一个包含人员信息的数组:

----- ------ - -
  - ----- -------- ---- -- --
  - ----- ------ ---- -- --
  - ----- ---------- ---- -- -
--

我们可以编写一个比较函数,根据 age 属性进行排序:

-------- --------------------- -- -
  ------ ----- - ------
-

--------------------------------
--------------------
-- -
--   - ----- ------ ---- -- --
--   - ----- -------- ---- -- --
--   - ----- ---------- ---- -- -
-- -

更复杂的排序

如果需要按照多个属性进行排序,该怎么办?我们可以编写一个更复杂的比较函数。

假设我们有一个包含学生成绩信息的数组:

----- -------- - -
  - ----- -------- ----- --- -------- -- --
  - ----- ------ ----- --- -------- -- --
  - ----- ---------- ----- --- -------- -- -
--

我们可以编写一个比较函数,先根据 math 属性进行排序,如果 math 相同,则再根据 english 属性进行排序:

-------- ------------------------- -- -
  -- ------- --- ------- -
    ------ ------ - -------
  - ---- -
    ------ --------- - ----------
  -
-

--------------------------------------
----------------------
-- -
--   - ----- ---------- ----- --- -------- -- --
--   - ----- -------- ----- --- -------- -- --
--   - ----- ------ ----- --- -------- -- -
-- -

示例代码

以下是一个包含以上示例代码的完整程序:

----- ------ - -
  - ----- -------- ---- -- --
  - ----- ------ ---- -- --
  - ----- ---------- ---- -- -
--

-------- --------------------- -- -
  ------ ----- - ------
-

--------------------------------
--------------------

----- -------- - -
  - ----- -------- ----- --- -------- -- --
  - ----- ------ ----- --- -------- -- --
  - ----- ---------- ----- --- -------- -- -
--

-------- ------------------------- -- -
  -- ------- --- ------- -
    ------ ------ - -------
  - ---- -
    ------ --------- - ----------
  -
-

--------------------------------------
----------------------

以上就是本文所介绍的用于排序对象数组的简单函数。希望能对您有所帮助!

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/29793