javascript按特殊字符后的值对字符串数组进行排序
我想按包含冒号(:)的值的数组排序 这是下面的输入javascript按特殊字符后的值对字符串数组进行排序,javascript,arrays,json,angularjs,Javascript,Arrays,Json,Angularjs,我想按包含冒号(:)的值的数组排序 这是下面的输入 [ 'Severity', 'Name', 'U1A_Shift SCM: UPTT-Pressure (Bara)', 'U1A_Shift SCM: DPTT-Pressure (Bara)', 'U3B SCM: APTT-Pressure (Bara)', 'U3B SCM: UPTT-Pressure (Bara)', 'U1B SCM: DPTT-Pressure (Bara)',
[
'Severity',
'Name',
'U1A_Shift SCM: UPTT-Pressure (Bara)',
'U1A_Shift SCM: DPTT-Pressure (Bara)',
'U3B SCM: APTT-Pressure (Bara)',
'U3B SCM: UPTT-Pressure (Bara)',
'U1B SCM: DPTT-Pressure (Bara)',
'U1B SCM: UPTT-Pressure (Bara)',
'U3B SCM: DPTT-Pressure (Bara)',
'U1A_Shift SCM: UPTT-Temp (DegC)',
'U1A_Shift SCM: DPTT-Temp (DegC)',
'U3B SCM: APTT-Temp (DegC)',
'U3B SCM: UPTT-Temp (DegC)',
'U1B SCM: DPTT-Temp (DegC)',
'U1B SCM: UPTT-Temp (DegC)',
'U3B SCM: DPTT-Temp (DegC)',
'U1B SCM: PCV-CHOKE status - Control position',
'U3B SCM: PCV-CHOKE status - Control position',
'U1A_Shift SCM: PCV-CHOKE status - Control position',
'Alarms',
'Advisories',
'__row_index'
]
我想按冒号(:)后的值对其进行排序/分组
这应该低于输出
[
'Severity',
'Name': 'U3B',
'U1A_Shift SCM: UPTT-Pressure (Bara)', // grouped by UPTT-Pressure (Bara)
'U3B SCM: UPTT-Pressure (Bara)',
'U1B SCM: UPTT-Pressure (Bara)',
'U1A_Shift SCM: DPTT-Pressure (Bara)', //grouped by DPTT-Pressure (Bara)
'U1B SCM: DPTT-Pressure (Bara)',
'U3B SCM: DPTT-Pressure (Bara)',
'U3B SCM: APTT-Pressure (Bara)', // grouped by APTT-Pressure (Bara)
'U1A_Shift SCM: UPTT-Temp (DegC)', // grouped by UPTT-Temp (DegC)
'U3B SCM: UPTT-Temp (DegC)',
'U1B SCM: UPTT-Temp (DegC)',
'U1A_Shift SCM: DPTT-Temp (DegC)', // grouped by DPTT-Temp (DegC)
'U1B SCM: DPTT-Temp (DegC)',
'U3B SCM: DPTT-Temp (DegC)',
'U3B SCM: APTT-Temp (DegC)', // grouped by APTT-Temp (DegC)
'U1B SCM: PCV-CHOKE status - Control position', // grouped by PCV-CHOKE status - Control position
'U3B SCM: PCV-CHOKE status - Control position',
'U1A_Shift SCM: PCV-CHOKE status - Control position',
'Alarms',
'Advisories',
'__row_index',
]
我需要对位于“:”之后的数组值进行排序,例如:APTT Temp(DegC)
如何对数组值进行排序/分组
非常感谢您的帮助:)您可以收集所有组和单个值并返回平面数组
const
数据=[‘严重性’、‘名称’、‘U1A_班次SCM:UPTT压力(Bara)’、‘U1A_班次SCM:DPTT压力(Bara)’、‘U3B SCM:UPTT压力(Bara)’、‘U3B SCM:DPTT压力(Bara)’、‘U1A_班次SCM:UPTT温度(DegC)’、‘U3B SCM:APTT温度(DegC)’、‘U3B SCM:UPTT温度(DegC)’‘U1B SCM:DPTT温度(DegC)’、‘U1B SCM:UPTT温度(DegC)’、‘U3B SCM:DPTT温度(DegC)’、‘U1B SCM:PCV-节流阀状态-控制位置’、‘U3B SCM:PCV-节流阀状态-控制位置’、‘U1B SCM:DPTT压力(Bara)’、‘U1B SCM:UPTT压力(Bara)’、‘U1A\U换档SCM:PCV-节流阀状态-控制位置’、‘警报’、‘警告’、‘行索引’,
地图=数据。减少((m,s)=>{
常量组=s.split(/:\s*/)[1]| | m.size;
返回m.set(group,[…(m.get(group)| |[]),s];
},新地图),
分组=数组.from(map.values()).flat(),
计数=数组
.from(map,([k,{length}])=>[k,typeof k==='string'&&length])
.filter(([,length])=>长度;
控制台日志(计数);
控制台日志(分组)代码>
.as console wrapper{max height:100%!important;top:0;}
所需的输出是语法错误?与预期结果无关,在我看来是有序的。@evolutionxbox:抱歉,最初是对象,我现在已将所需的输出更新为数组。:)还请注意,输入和输出都不是有效的JSON。顺序是什么?看起来是随机的。Hi Nina,为了实现这一点,我可能需要做什么改变?你可以按照上面分组键的顺序构建一个新对象。你能帮我完成这一部分吗,我急需它:)@MitulPanchal类似的东西?@NinaScholz是的,对象的值如何获取它(分组的常量键){obj[key]=“随便什么”;}