如何通过字符串的一部分查找对象?

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了。