javascript - 根据两个键对数组中的对象进行排序
问题描述
我有一个如下所示的 JavaScript 数组,我正在尝试根据 Ptr 和 Outputs 对元素进行排序。正确的顺序是:(节点 0 -> 节点 2 -> 节点 1)。一个元素的输出应该与下一个元素的 Ptr 相同。我不确定如何在 JS 中执行此操作,因为我是该语言的新手。
nodeObjs = [{
Node: '0',
Id: '8057358647298',
Ptr: '2454369535744',
Outputs: '2454369536096',
Type: 'SrcStream',
NodeDetails: 'MediaType=[FrameSize=8246337209332 (1920,1012),BitRate=3733169,Compressed=1,MajorType={73646976-0000-0010-8000-00AA00389B71},Stride=0,Rotation=0,FrameRate=42949672960397843 (10000000,397843),PixelAspectRatio=4294967297 (1,1),InterlacedMode=7,Subtype={34363248-0000-0010-8000-00AA00389B71}]'
},
{
Node: '1',
Id: '8057358647297',
Ptr: '2454369537680',
Outputs: '',
Type: 'Out',
NodeDetails: 'MediaType=[FrameSize=8246337209332 (1920,1012),BitRate=3733169,Compressed=0,MajorType={73646976-0000-0010-8000-00AA00389B71},Stride=1920,Rotation=0,FrameRate=42949672960397843 (10000000,397843),PixelAspectRatio=4294967297 (1,1),InterlacedMode=7,Subtype={3231564E-0000-0010-8000-00AA00389B71}]'
},
{
Node: '2',
Id: '8057358647303',
Ptr: '2454369536096',
Outputs: '2454369537680',
Type: 'Trnsfrm',
NodeDetails: 'CLSID={62CE7E72-4C71-4D20-B15D-452831A87D9D},HWMFT=0,InputType=[FrameSize=8246337209332 (1920,1012),BitRate=3733169,Compressed=1,MajorType={73646976-0000-0010-8000-00AA00389B71},Stride=0,Rotation=0,FrameRate=42949672960397843 (10000000,397843),PixelAspectRatio=4294967297 (1,1),InterlacedMode=7,Subtype={34363248-0000-0010-8000-00AA00389B71}],OutputType=[FrameSize=8246337209332 (1920,1012),BitRate=3733169,Compressed=0,MajorType={73646976-0000-0010-8000-00AA00389B71},Stride=1920,Rotation=0,FrameRate=42949672960397843 (10000000,397843),PixelAspectRatio=4294967297 (1,1),InterlacedMode=7,Subtype={3231564E-0000-0010-8000-00AA00389B71}]'
}]
解决方案
使用 ES6:
nodeObjs.sort(function(a, b) {
return a.Outputs.localeCompare(b.Ptr) && b.Node - a.Node;
}).reverse()
推荐阅读
- binary - 如何从 fread 获取 nbit 类型?
- machine-learning - 如何确定 caffe blob 的输入尺寸
- javascript - 最快的布尔值和整数散列?
- gradle-kotlin-dsl - 定义删除任务时出错
- php - PHP:curl通过正则表达式获取隐藏输入的值
- java - 如何仅使用 java 和 jdbc(无 ORM)为基本的 crud 操作实现通用 DAO?
- vue.js - 获取对 vue-router router-link 组件的引用
- php - 使用codeigniter上传生成的图片
- c++ - 返回最低节点的名称
- node.js - 即使 tsc 成功解决它,也找不到 Typescript 模块