Javascript 获取给定属性的最大数组长度的对象

Javascript 获取给定属性的最大数组长度的对象,javascript,lodash,Javascript,Lodash,我试图从数组对象中获取具有最长数组长度属性的对象 [ {a:[...],...}, {a:[...],...}, ... } ] Lodash拥有maxBy来获取property具有最大值的对象,但我想检查属性数组的长度。我的对象也有一个getCount()函数,但它也不起作用,所以我猜这是因为lodash只能检查属性的数值。lodash的maxBy能否以某种方式使用数组的长度作为条件?您可以使用: 让arr=[{a:[1]},{a:[1,2]},{a:[1,2,3]}]; //带着一只羔羊

我试图从数组对象中获取具有最长数组长度属性的对象

[ {a:[...],...}, {a:[...],...}, ... } ]
Lodash拥有
maxBy
来获取
property
具有最大值的对象,但我想检查属性数组的长度。我的对象也有一个
getCount()
函数,但它也不起作用,所以我猜这是因为lodash只能检查属性的数值。lodash的
maxBy
能否以某种方式使用数组的长度作为条件?

您可以使用:

让arr=[{a:[1]},{a:[1,2]},{a:[1,2,3]}];
//带着一只羔羊
log(u.maxBy(arr,obj=>obj.a.length));
//使用“\.property”iteratee速记
console.log(u.maxBy(arr,'a.length'))
Array.reduce()非常适合这种类型的东西。比如:

const arr=[{a:[1]},{a:[1,2]},{a:[1,2,3]}];
const result=arr.reduce((e1,e2)=>e1.a.length>e2.a.length?e1:e2);

log(“具有最长a的arr元素:”,结果)
您只需使用
Math.max
map

让arr=[{a:[1]},{a:[1,2]},{a:[1,2,3]}];
设op=Math.max(…arr.map(({a})=>a.length))
控制台日志(op)