linqjs相交比较问题

linqjs intersect comparer issue

我正在使用 linqjs,我有一个包含要包含在列表中的 ID 的数组,以及一个包含 属性 userId.

的复杂对象的数组

问题是当我做一个交叉点时它似乎从来没有 return 任何东西,但是 compareSelector.

周围的信息很少

下面是我正在做的一个例子:

enumerableOfUsers.intersect(listOfIdsToInclude, "$.userId");

所以在上面的例子中 enumerableOfUsers 将是一个现有的可枚举的用户数组(包含 userId 字段),listOfIdsToInclude 是一个 id 值的数组, 比如 ["12345", "213213", "2124"]

相交似乎有效,但从来没有 return 任何东西而且我知道 userIds 匹配所以我在这里做错了吗?

问题是比较选择器应用于第一组和第二组的项目。第二组已经是 ID 列表,因此比较选择器不适用。投影产生 undefined 值,这将始终导致找不到结果。

您只需将选择器应用于第一组值。试试这个:

// using linqjs 2.x syntax
var query = enumerableOfUsers.Select("$.userId").Intersect(listOfIdsToInclude);