JavaScript:将数组元素排序为;“真实的”;字段值排在第一位
我有一个对象数组,其中每个对象都有一个名为JavaScript:将数组元素排序为;“真实的”;字段值排在第一位,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个对象数组,其中每个对象都有一个名为field的属性。字段属性的某些值是真实的: const arr=[ {field:true}, {field:false}, {field:false}, {field:true}, {field:true}, {字段:false} ] 我想以这样一种方式对其进行排序,即字段true的所有元素必须排在第一位。我该怎么做 目前,我的代码如下所示: arr.sort((x,y)=>x.field)/?? 您可以获取布尔值的增量。由于true为1,而fal
field
的属性。字段
属性的某些值是真实的:
const arr=[
{field:true},
{field:false},
{field:false},
{field:true},
{field:true},
{字段:false}
]
我想以这样一种方式对其进行排序,即字段true
的所有元素必须排在第一位。我该怎么做
目前,我的代码如下所示:
arr.sort((x,y)=>x.field)/??
您可以获取布尔值的增量。由于true
为1,而false
为零,因此需要反转这些值
const数组=[{field:true},{field:false},{field:false},{field:true},{field:true},{field:false}]
排序((a,b)=>b.field-a.field);
console.log(数组)代码>
.as console wrapper{max height:100%!important;top:0;}
排序的返回值应该是一个数字,这样您就可以减去对象的字段
属性
常数arr=[
{field:true},
{field:false},
{field:false},
{field:true},
{field:true},
{字段:false}
]
arr.sort((a,b)=>b.field-a.field);
console.log(arr)
另一种方法是使用Array#sort
并返回一个排序键-1
或1
明确性,这将实现所需的结果:
const数组=[
{field:true},
{field:false},
{field:false},
{field:true},
{field:true},
{字段:false}
]
/*当项目字段值为时,为排序键返回-1
truthy bubbles是否已将该项排序到列表顶部
大堆Return 1将项目推到已排序项目的底部
排列*/
array.sort(item=>item.field?-1:1);
console.log(数组)代码>那么您当前代码中的问题是什么>/它不起作用。数组没有排序,它只剩下我声明的数组。为什么说“truthy”并给出所有布尔值?