javascript - 以人工顺序对 JavaScript 数组进行排序
问题描述
我有一个REST
查询返回的数组,该数组表示多步骤生产过程中的项目数。
var steps = [
{ name:'Package', value:3},
{ name:'Assemble', value:1 },
{ name:'Ship', value:7},
{ name:'Preprocess', value:9 },
{ name:'Paint', value:5 }
];
我想按流程的顺序对它们进行排序,如下所示:
- 预处理
- 画
- 集合
- 包裹
- 船
我有其他的字母数字排序,我正在使用下划线,但我无法弄清楚这一点。
解决方案
您可以为想要的订单获取一个对象,其中包含该位置的数值。然后按此值排序。
var steps = [{ name: 'Package', value: 3 }, { name: 'Assemble', value: 1 }, { name: 'Ship', value: 7 }, { name: 'Preprocess', value: 9 }, { name: 'Paint', value: 5 }],
order = { Preprocess: 1, Paint: 2, Assemble: 3, Package: 4, Ship: 5 };
steps.sort(({ name: a }, { name: b }) => order[a] - order[b]);
console.log(steps);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- c# - 如何在 Stackpanel 上命名元素
- sql - SQL根据条件插入现有表
- javascript - 如何使用 AngularJS $http 获取 ExpressJS 端点返回的数据?
- javascript - 将 UTC 日期原样转换为目标格式
- angular - Angular 8:将 html 作为输入变量传递
- sql-server - 在 SQL Server 2012 上返回错误结果的条件更新语句
- git - 将多个 Web 项目打包到单个 Nuget 包中
- c# - C# ExcelWorksheet 单元格值读取不正确
- class - 是否存在只有某些属性值排列等于有效对象的反模式名称?
- java - Java:创建变量类的实例