I have array of objects in object have different key so i want the object having minimum value in that array
list = [{
'id': 4,
'name': 'nitin',
'group': 'angularjs'
},
{
'id': 1,
'name': 'nitin',
'group': 'angularjs'
},
{
'id': 2,
'name': 'nitin',
'group': 'angularjs'
},
{
'id': 3,
'name': 'nitin',
'group': 'angularjs'
}
]
I tried by
var minValue = Math.min.apply(Math, list.map(function (o) {
return o.id;
}))
but it returns only the id not whole object then i have to make more filter for get object
is there any direct method to find object?
I tried these solutions with Array.reduce but none of them were full proof. They do not handle cases where the array is empty or only has 1 element.
Instead this worked for me:
const result = array.reduce(
(prev, current) =>
(prev?.id ?? current?.id) >= current?.id ? current : prev,
null,
);
It returns null if array is empty and handles other cases well.
You can use Array reduce
method:
var list = [
{
'id':4,
'name':'nitin',
'group':'angularjs'
},
{
'id':1,
'name':'nitin',
'group':'angularjs'
},
{
'id':2,
'name':'nitin',
'group':'angularjs'
},
{
'id':3,
'name':'nitin',
'group':'angularjs'
}];
var result = list.reduce(function(res, obj) {
return (obj.id < res.id) ? obj : res;
});
console.log(result);
Using Array#reduce()
list = [{
'id': 4,
'name': 'nitin',
'group': 'angularjs'
},
{
'id': 1,
'name': 'nitin',
'group': 'angularjs'
},
{
'id': 2,
'name': 'nitin',
'group': 'angularjs'
},
{
'id': 3,
'name': 'nitin',
'group': 'angularjs'
}
];
let min = list.reduce((prev, curr) => prev.id < curr.id ? prev : curr);
console.log(min);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With