当前位置: 首页 > 面试题库 >

按自定义顺序对对象数组进行排序

汝吕恭
2023-03-14
问题内容

我有一个对象数组,这些对象的属性称为“ CODE”。

[
  {
   ID: 168,
   NAME: "First name",
   CODE: "AD"
  },
  {
   ID: 167,
   NAME: "Second name",
   CODE: "CC"
  },
  {
   ID: 169,
   NAME: "Third name",
   CODE: "CCM"
  },
  {
   ID: 170,
   NAME: "Fourth name",
   CODE: "CR"
  },
]

如何通过自定义顺序对数组进行排序,例如:

var item_order = ["CCM","CR","AD","CC"];

尝试各种方法均未成功。请帮忙。


问题答案:

您可以将函数sort与函数一起使用indexOf

var array = [  {   ID: 168,   NAME: "First name",   CODE: "AD"  },  {   ID: 167,   NAME: "Second name",   CODE: "CC"  },  {   ID: 169,   NAME: "Third name",   CODE: "CCM"  },  {   ID: 170,   NAME: "Fourth name",   CODE: "CR"  }],

    item_order = ["CCM","CR","AD","CC"];



array.sort((a, b) => item_order.indexOf(a.CODE) - item_order.indexOf(b.CODE));



console.log(array);


.as-console-wrapper { max-height: 100% !important; top: 0; }


 类似资料:
  • 问题内容: 我有一个数组数组: 需要按特定顺序进行: 3452342 5867867 7867867 1231233 我将如何去做?我之前已经对数组进行了排序,并阅读了许多其他文章,但它们始终基于比较(即valueA <valueB)。 感谢帮助。 问题答案: 您可以用来精确指示如何对数组进行排序。在这种情况下,可以在比较函数中使用该数组。 下面的示例使用a 使生活更轻松。 这项工作的关键是使要比

  • 问题内容: 我有这个: 和[电影]数组。如何按名称的字母顺序对数组进行排序?我试过了: 和 但这不起作用,因为我没有访问电影的名称属性。 问题答案: 在传递给的闭包中,比较要排序的属性。像这样: 或以下要绕过案例的案例: 旁注: 通常,只有类型以大写字母开头;我建议使用and ,而不是and 。 例如,在操场上: 将按顺序 Swift5更新

  • 问题内容: 我想就这个小问题得到您的帮助。 我想根据 代码 值 而不是字母顺序 对数组 进行排序。 ( 我用粗体字指定了该名称,但最终还是被标记出来了,人们甚至都不在乎阅读该问题 ) 例如,我想有所有 绿色的 对象,那么所有的 蓝色 的人,然后将所有的 红色 的。最好的方法是什么? 使用 sort 函数可以做到这一点吗?在这种情况下会是什么情况? 问题答案: 您可以为所需订单取一个对象。 对于未知

  • 问题内容: 我正在为我的通讯录应用程序实现排序功能。 我想排序一个。是一个包含四个字段的类:姓名,家庭电话,手机号码和地址。我想继续。 如何编写自定义排序功能来做到这一点? 问题答案: 这是有关订购对象的教程: Java教程-集合-对象排序 尽管我会举一些例子,但我还是建议你阅读它。 有多种排序方式。如果要定义自然的(默认)排序,则需要让实现。假设你想默认在上进行排序name,然后执行(为简单起见

  • 问题内容: 如何按其字段之一(例如或)对对象数组进行排序? 问题答案: 使用usort,这是从手册改编而成的示例: 您还可以将任何callable用作第二个参数。这里有些例子: 使用匿名函数(来自PHP 5.3) 从班级内部 使用箭头函数(来自PHP 7.4) 另外,如果要比较数字值,则应使用“比较”功能。

  • 问题内容: 我有一个数组: 如果使用,则输出为: 但是我需要实现以下排序: 我想我需要实现和重写方法: 我应该如何解决这个问题? 问题答案: 您还可以添加: 如果数组不区分大小写。 显然,OP不仅要比较字母,还希望比较字母字符串,所以比较复杂: