Javascript 按特定键值对对象数组进行排序
我有一个对象数据数组,我想通过特定的键对数组中的对象进行排序,该键是Javascript 按特定键值对对象数组进行排序,javascript,arrays,reactjs,object,Javascript,Arrays,Reactjs,Object,我有一个对象数据数组,我想通过特定的键对数组中的对象进行排序,该键是收藏夹。在一排水果中。它有一些水果的对象。我只想根据收藏夹键进行排序。如果对象内部的键favorite:true,则此对象将转到顶部,如果在多个对象中找到favorite:true,则始终将找到favorite:true键的第一个对象的顶部设置 输入数据: [ { id: 1, title: 'Banana', }, { id: 2, title: 'Mango', favo
收藏夹
。在一排水果中。它有一些水果的对象。我只想根据收藏夹
键进行排序。如果对象内部的键favorite:true
,则此对象将转到顶部,如果在多个对象中找到favorite:true
,则始终将找到favorite:true
键的第一个对象的顶部设置
输入数据:
[
{
id: 1,
title: 'Banana',
},
{
id: 2,
title: 'Mango',
favourite:true
},
{
id:3,
title: 'Apple',
},
]
预期产出数据:
[
{
id: 2,
title: 'Mango',
favourite:true
},
{
id: 1,
title: 'Banana',
},
{
id:3,
title: 'Apple',
}
]
您可以做的是根据给定的输入值实例化一个新数组:
const-favoritesfirst=[
//找到所有喜爱的项目并将其添加到开始
…input.filter(item=>item.Favorite),
//附加所有其他“非喜爱”项目
…input.filter(item=>!item.Favorite),
]
水果。分类((a,b)=>{
如果(a.favorite&&!b.favorite)返回1;
如果(!a.favorite&&b.favorite)返回-1;
否则返回0;
});
您可以使用过滤功能查找喜爱的水果
var-arr=[
{
id:1,
标题:"香蕉",,
},
{
id:2,
标题:“芒果”,
最喜欢的:真的
},
{
id:3,
标题:"苹果",,
},{
id:4,
标题:"橙色",,
最喜欢的:真的
}
];
//过滤喜爱的水果
var-favoriteFruits=arr.filter(obj=>obj.favorite==true);
//过滤不喜欢的水果
var otherFruits=arr.filter(obj=>obj.favorite!==true);
//找到分类的水果
var Sortedar=favoriteFruits.concat(其他水果)代码>虽然这段代码可能提供了问题的解决方案,但最好添加上下文来说明为什么/如何工作。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。在解释代码时,用户也可能会给予积极的反馈/支持。