Linqjs 与比较器问题相交

linqjs intersect comparer issue

本文关键字:问题 比较器 Linqjs      更新时间:2023-09-26

>我正在使用linqjs,我有一个充满id的数组要包含在列表中,还有一个充满复杂对象的数组,这些对象的属性userId

问题是当我做一个交叉点时,它似乎永远不会返回任何东西,但是compareSelector周围的信息很少。

所以这是我正在做的事情的一个例子:

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

因此,在上面的示例中,enumerableOfUsers将从用户数组(包含userId字段)创建的现有枚举对象,listOfIdsToInclude是 id 值数组,如 ["12345", "213213", "2124"] 等。

相交似乎有效,但从不返回任何内容,我知道 userId 匹配,所以我在这里做错了什么吗?

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

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

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