我在数组中有这样的对象:
{
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
},
我使用下划线_.where
根据createAt
找到它们:
var adminsThisMonth = _.where(admins, {createdAt: adminCreatedAt})
有没有办法只根据createdAt
的一个部分找到一个对象,比如连字符之间的两位数? (在这种情况下为12
)。
答案 0 :(得分:2)
使用_.filter()
可以传递谓词函数,以使用您想要的任何逻辑过滤对象。
_.filter(admins, function (obj) {
return checkConditon(obj.created);
});
答案 1 :(得分:1)
var obj = {
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
};
if(obj.hasOwnProperty("createdAt") && obj.createdAt.indexOf("-12-")>-1){
...
}
首先检查是否有密钥以及是否有该密钥,然后检查-12-
的索引
答案 2 :(得分:1)
使用方法find,它类似于where但是将函数作为第二个参数。然后在该函数中使用@Tushar中的建议代码。
_.find(admins, function(admin) {
return admin.createdAt.indexOf('-12-') > -1;
});
答案 3 :(得分:1)
使用像这样的普通JS:
var admins =[
{
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
}
]
var checkCreatedAt = (admins.map(function(obj){ return obj.createdAt; }).toString().indexOf("-12-") != -1) ? true : false;
...然后您可以根据需要使用checkCreatedAt
。