我有一个这样的数组:
[
{'date' : 'date', notifications:[{notificationID:4, name: 'abc' }, {notificationID:1, name: 'abc' }]},
{'date' : 'date', notifications:[{notificationID:3, name: 'abc' }, {notificationID:4, name: 'abc' }]}
]
在这种情况下,notificationID的最小值为1.因此下划线应返回1.
这是我的不完整代码,显然不能像单个数组一样工作
notificationID = _.min(_.pluck($scope.notificationDetails, "notificationID"));
感谢任何帮助。
答案 0 :(得分:1)
你需要一个双重选择:第一个获得所有notifications
,第二个获得第一个notificationID
:
var arr = [
{'date' : 'date', notifications:[{notificationID:4, name: 'abc' }, {notificationID:1, name: 'abc' }]},
{'date' : 'date', notifications:[{notificationID:3, name: 'abc' }, {notificationID:4, name: 'abc' }]}
];
var notificationID = _.min( _.pluck( _.flatten( _.pluck(arr, 'notifications') ), 'notificationID') );
console.log( notificationID );
答案 1 :(得分:0)
我不太了解下划线,但是这样的事情应该可以解决问题:
var arr = [
{'date' : 'date', notifications:[{notificationID:4, name: 'abc' }, {notificationID:1, name: 'abc' }]},
{'date' : 'date', notifications:[{notificationID:3, name: 'abc' }, {notificationID:4, name: 'abc' }]}
];
var min = arr.reduce(function (a, b) {
return Math.min(a, b.notifications.reduce(function (a, b) {
return Math.min(a, b.notificationID);
}, Infinity));
}, Infinity);
希望这有帮助!