我正在使用linqjs,我有一个包含在列表中的id的数组,以及一个包含属性userId
的复杂对象的数组。
问题是,当我做一个交叉点时,它似乎永远不会返回任何内容,但compareSelector
周围的信息很少。
所以这是我正在做的一个例子:
enumerableOfUsers.intersect(listOfIdsToInclude, "$.userId");
因此,在上面的示例中,enumerableOfUsers
将是从用户数组(包含userId
字段)创建的现有可枚举,listOfIdsToInclude
是一个id值数组,如["12345", "213213", "2124"]
等。
交叉似乎有效,但从不返回任何内容,我知道userIds匹配,所以我在这里做错了吗?
答案 0 :(得分:1)
比较选择器应用于第一组和第二组的项目。第二组是id列表,因此比较选择器不适用。投影产生undefined
值,这将始终导致找不到结果。
您只需将选择器应用于第一组值。试试这个:
// using linqjs 2.x syntax
var query = enumerableOfUsers.Select("$.userId").Intersect(listOfIdsToInclude);