【发布时间】:2017-02-07 12:56:00
【问题描述】:
我有一个数组:
var array = [
{ID : 1,
Name : one,
data : {more info here}
},
{ID : 2,
Name : two
},
{ID : 3,
Name : three,
data : {more info here}
},
{ID : 4,
Name : four
},
{ID : 5,
Name : five,
data : {more info here}
},]
需要对这些数组进行排序,有数据的地方会排在最前面,然后是其他。 最终排序结果将是 -
[{ID:1,name: one,data: {}},
{ID:3,name: three,data: {}},
{ID:5,name: five,data: {}},
{ID:2,name: two},
{ID:4,name: four}]
【问题讨论】:
-
通过“存在数据的位置将是顶部,然后是其他”,您的意思是您实际上是希望所有具有
data的人首先,按递增的ID顺序排序,然后是所有没有@987654325 的人@也按递增的ID顺序排序? -
顺便说一句:如果您以随机顺序提供输入数组会更好。事实上,一些答案依赖于数组的输入顺序,最终得到您指定为输出的整体数组顺序。如果您只关心所有带有
data的人应该排在所有没有data的人之前,并且您不在乎他们在这两组中的顺序,那么提供随机输入可能无关紧要。也就是说,如果IDs 的顺序是[5,1,3,4,2],那么数组结果是OK的,那么这可能无关紧要吗? -
注意:我投了反对票,因为您的问题目前并未表明结果数组是否也应按
ID排序(即您的问题暗示可能是这种情况,但尚不清楚)。如果您澄清您是否关心ID在有data/没有data子组中的顺序,我将删除我的反对票。如果您确实澄清了这一点(一种或另一种方式),请在其中留下@Makyen的评论,以便通知我回来查看。
标签: javascript arrays sorting