按2个或更多字符串过滤对象

时间:2017-01-09 13:35:54

标签: javascript typescript

我有2个对象,一个课程列表和一个用户。

课程列表是一个包含很多课程的数组:

[
  {
    "id": 12345,
    "title": "Some title",
    "type": [
      {
        "id": 4700,
        "slug": "someType",
        "name": "someTypeName"
      }
    ],
    "difficulty": [
      {
        "id": 4704,
        "slug": "4",
        "name": "hard"
      }
    ],..
  },
{...}

用户还有一些字段:

{
  "difficulty": 4, // the difficulty->slug
  "type": "someType"  // the type->slug
}

我的任务:

我希望找到课程与用户之间的最佳匹配。

在此示例中,用户正在查找type.slug == someTypedifficulty.slug == 4。 slu is总是搜索词。

我的第一次尝试是:

courseList.filter((course) => {
    if (course.type.indexOf(that.userData.type) != -1) {
        return course; // dont work
    }
});

修改:我需要在前端显示nameid属性,而“slug”始终是搜索字词。

2 个答案:

答案 0 :(得分:6)

&param1函数需要filter(在您的情况下为function函数),并返回arrow,请尝试使用此代码:

boolean

答案 1 :(得分:1)

您需要将collisionBitMask属性与用户数据进行比较。

这里的技巧是确保您过滤数组并检查计数。

slug