我有对象的数组:的Javascript排序初始位置和对象属性
[{
id : 1,
tag: "video"
},
{
id : 2,
tag: "music"
},
{
id : 3,
tag: "video"
},
{
id : 4,
tag: "music"
},
{
id : 5,
tag: "video"
}]
我想基于2个因素此数组进行排序:
- 的元件的初始位置
- 标签
基本上我应该将标签组合在一起,但同时保持产品应该看起来像这样:
[{
id : 1,
tag: "video"
},
{
id : 3,
tag: "video"
},
{
id : 5,
tag: "video"
},
{
id : 2,
tag: "music"
},
{
id : 4,
tag: "music"
}]
正如您所看到的,现在它们按标记名称分组,但保留了初始顺序。 id = 1的项目位于id = 2的项目之前,因为它是首先添加的,依此类推。
请注意,我不能使用此字段的id字段,因为真正的id不是一个整数,它是一个无法比较的唯一字符串。所以,而不是ID我应该使用原始位置索引。
我唯一看起来不太好的解决方案是在最初的数组上创建一个大块代码,并通过检查最后一个项目来创建一个新项目标签添加到原始数组中,并抓住它的位置并将其添加到该位置上的新数组中。
任何最佳解决方案?由于
我重新打开它,因为,它不是按字母顺序排序。它更像是一个分组,然后是一个排序问题。 –