linqjs交叉比较器问题

时间:2016-03-16 15:58:41

标签: javascript linq.js

我正在使用linqjs,我有一个包含在列表中的id的数组,以及一个包含属性userId的复杂对象的数组。

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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