0

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

问题是当我做一个交叉路口时,它似乎永远不会返回任何东西,但是compareSelector.

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

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

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

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

4

1 回答 1

1

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

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

// using linqjs 2.x syntax
var query = enumerableOfUsers.Select("$.userId").Intersect(listOfIdsToInclude);
于 2016-03-16T22:51:41.560 回答