我对象中的对象数组有不同的键,所以我希望对象在该数组中具有最小值
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 minValue = Math.min.apply(Math, list.map(function (o) {
return o.id;
}))
但它只返回id而不是整个对象,然后我必须为get object
制作更多的过滤器有找到对象的直接方法吗?
答案 0 :(得分:6)
您可以使用数组reduce
方法:
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);
答案 1 :(得分:0)
使用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);
答案 2 :(得分:0)
您可以通过循环遍历数组来检查具有最低id的对象,可能不是最好的方法,但无论如何都是解决方案:
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 tmp = list[0].id;
list.forEach(function (entry) {
if (entry.id < tmp) {
tmp = entry;
}
});
console.log(tmp);
答案 3 :(得分:0)
其他选项可能是过滤你的数组,因为你已经有了min“id”
public PartialViewResult GetDetails ( int id )
{
List<VoInfoDetail> model = db.VoInfoDetails.Where( m => condition testing id here ).ToList();
return PartialView("VoDetails", model);
}