Javascript 按布尔属性对对象数组进行排序
2022-08-30 04:09:04
有关实际问题,请参阅末尾的编辑。
好的,我有这个场景:
a = [false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
然后,如果我这样做:
a.sort(function(a,b){return !a && b});
它给了我这个:
[false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, true, false, false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]
它正在做一个排序...但不完全... :(
如何对此数组进行排序?
编辑:
如果你想知道为什么我不只使用a.sort()是因为我的实际数组是对象的,而不是像我发布的数组那样的普通数组。真正的元素看起来像[{xx:true},{xx:false},...]