我有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 == someType
和difficulty.slug == 4
。 slu is总是搜索词。
我的第一次尝试是:
courseList.filter((course) => {
if (course.type.indexOf(that.userData.type) != -1) {
return course; // dont work
}
});
修改:我需要在前端显示name
和id
属性,而“slug”始终是搜索字词。
答案 0 :(得分:6)
¶m1
函数需要filter
(在您的情况下为function
函数),并返回arrow
,请尝试使用此代码:
boolean
答案 1 :(得分:1)
您需要将collisionBitMask
属性与用户数据进行比较。
这里的技巧是确保您过滤数组并检查计数。
slug