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)