如何通过字符串的一部分查找对象?
How to find an object by part of a string?
我在数组中有这样的对象:
{
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
},
我正在使用 Underscore 的 _.where
根据 createAt
:
找到它们
var adminsThisMonth = _.where(admins, {createdAt: adminCreatedAt})
有什么方法可以只根据 createdAt
的一部分来查找对象,比如连字符之间的两位数字? (12
在这种情况下)。
var obj = {
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
};
if(obj.hasOwnProperty("createdAt") && obj.createdAt.indexOf("-12-")>-1){
...
}
首先检查它是否有密钥,如果有那个密钥然后检查 -12-
的索引
使用方法find,它与where 类似,但将一个函数作为第二个参数。然后在该函数中使用@Tushar 建议的代码。
_.find(admins, function(admin) {
return admin.createdAt.indexOf('-12-') > -1;
});
使用 _.filter()
,您可以将谓词函数传递给它,以使用您想要的任何逻辑过滤对象。
_.filter(admins, function (obj) {
return checkConditon(obj.created);
});
像这样使用纯 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
了。
我在数组中有这样的对象:
{
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
},
我正在使用 Underscore 的 _.where
根据 createAt
:
var adminsThisMonth = _.where(admins, {createdAt: adminCreatedAt})
有什么方法可以只根据 createdAt
的一部分来查找对象,比如连字符之间的两位数字? (12
在这种情况下)。
var obj = {
"objectId": "566013c860b202595a4b6fd9",
"createdAt": "2015-12-03T10:04:56.367Z",
};
if(obj.hasOwnProperty("createdAt") && obj.createdAt.indexOf("-12-")>-1){
...
}
首先检查它是否有密钥,如果有那个密钥然后检查 -12-
使用方法find,它与where 类似,但将一个函数作为第二个参数。然后在该函数中使用@Tushar 建议的代码。
_.find(admins, function(admin) {
return admin.createdAt.indexOf('-12-') > -1;
});
使用 _.filter()
,您可以将谓词函数传递给它,以使用您想要的任何逻辑过滤对象。
_.filter(admins, function (obj) {
return checkConditon(obj.created);
});
像这样使用纯 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
了。