使用 lodash 在集合中进行通配符搜索

Aja*_*nth 5 javascript arrays object node.js lodash

我有一个如下所示的数组,我想进行通配符搜索并检索相应的值。这不会给我带来任何结果,如果有更好的方法可以帮助我。我在我的 nodejs 应用程序中使用了 lodash 实用程序。

var allmCar = [
  {
    "_id": ObjectId("5833527e25bf78ac0f4ca30e"),
    "type": "mCar",
    "value": "ABDC",
    "__v": 0
  },
  {
    "_id": ObjectId("5833527e25bf78ac0f4ca30e"),
    "type": "mCar",
    "value": "XYZ ABD",
    "__v": 0
  },
  {
    "_id": ObjectId("5833527e25bf78ac0f4ca30e"),
    "type": "mCar",
    "value": "FGHJ",
    "__v": 0
  }
]

_.find(allmCar, {
  value: {
    $regex: 'XYZ'
  }
})
Run Code Online (Sandbox Code Playgroud)

我最终使用了 _.includes 如下

_.each(allmCar,function(car){
    if(_.includes('XYZ', car.value)===true)
    return car;
})
Run Code Online (Sandbox Code Playgroud)

the*_*eye 2

您可以对传递给 的函数执行相同的操作_.find,如下所示

_.find(allmCar, function(mCar) {
  return /XYZ/.test(mCar.value);
});
Run Code Online (Sandbox Code Playgroud)

或者使用箭头函数,

_.find(allmCar, (mCar) => /XYZ/.test(mCar.value));
Run Code Online (Sandbox Code Playgroud)

这会将传递的函数应用于集合的所有项目,如果某个项目返回true,则该项目将被返回。