У меня есть следующий код JavascriptПодчеркивание фильтр, индекс доступа
log = _.filter(r.logs, (function(o, i) {
if (i === 0) {
r.createdAt = moment(o.updatedAt).format("lll");
} else {
r.createdAt = "";
}
if (i === 1) {
r.authorisedAt = moment(o.updatedAt).format("lll");
r.authorisedBy = o.user;
} else {
r.authorisedAt = "";
r.authorisedBy = "";
}
if (i === 2) {
r.receivedAt = moment(o.updatedAt).format("lll");
r.receivedBy = o.user;
} else {
r.receivedAt = "";
r.receivedBy = "";
}
if (i === 3) {
r.creditedAt = moment(o.updatedAt).format("lll");
return r.creditedBy = o.user;
} else {
r.creditedAt = "";
return r.creditedBy = "";
}
}));
структура r.logs
{ user: 54ba76d3a14c9766bc6e0c2f,
updatedAt: Mon Feb 16 2015 16:38:46 GMT+0000 (GMT),
status: 'new',
comments: 'test return',
_id: 54e21d16608eb7bc20d5451b } 0
{ user: 54ba7c5b21f9fbb867222a95,
updatedAt: Mon Feb 16 2015 16:40:14 GMT+0000 (GMT),
status: 'authorised',
comments: 'EP02-BR2 is a sample, therefore return not authorised',
_id: 54e21d6e608eb7bc20d5451c } 1
{ user: 54ba7c5b21f9fbb867222a95,
updatedAt: Mon Feb 16 2015 16:41:11 GMT+0000 (GMT),
status: 'received',
comments: 'i only got one item for EP02-BL1',
_id: 54e21da7608eb7bc20d5451d } 2
{ user: 54ba7c5b21f9fbb867222a95,
updatedAt: Mon Feb 16 2015 16:42:59 GMT+0000 (GMT),
status: 'credited',
comments: 'credit sent',
_id: 54e21e13608eb7bc20d5451e } 3
Это работает, но хотел бы знать, если это может быть сделано проще?
Вы можете разместить структуру 'r.logs' тоже пожалуйста? – Jivings
Упрощение, в котором манеры? – Ancient
Лично мне не нравится идея модификации 'r.logs' в предикате' _.filter() '. Если возможно, я буду использовать '_.map()' (или цепочку '.map(). Filter()') вместо этого. – kamituel