如何解析集合的子对象以从多种可能性中找到独特的结果?

时间:2017-02-24 20:02:09

标签: meteor

在我的用户架构中,我有一个带有TokAuth子对象的token数组(如多个邮件地址)。

所以在一种方法中,当我在当前用户中搜索令牌时:

var id = Meteor.userId();
var usercurrent = Meteor.users.findOne({_id: id}, {fields: {"TokAuth": 1}});
var userToken = usercurrent.TokAuth.token;

我进入console.log(userToken)

[ 'fyAyXkXYrQdAlNpjuQfJ8RLU2TpfVGLnptlBs-m1h7xk',
I20170224-20:36:23.202(1)?   'YTwtUbhNTgiEfzFbJq7mESnOoOHeLYxWlqEeJJIG_GiV',
I20170224-20:36:23.206(1)?   'ViA4ydDITJtHDi2c_sArkNtpRYTjFqGL1ju2v00_-rFJ',
I20170224-20:36:23.206(1)?   '51ImZcxRADLJr-FPCUL7EFGnTZYjHSZk3XxdqtBV2_fd',
I20170224-20:36:23.207(1)?   'S5aEvqjJ5zTUJqLFCPY1aZ1ZhsQppZTJtYKULM9aS2B3',
I20170224-20:36:23.207(1)?   'mhBs3oxHf2SxZfu2vCZhtiyPfg25fKMY8bKMZD8fx6IG',
I20170224-20:36:23.207(1)?   '-rv0FiP-lxoqe8INyCJASV6rZpbgy3euEqB9sO9HsZSV',
I20170224-20:36:23.207(1)?   'zacr6_VBjHTsArov1LmQyZFLwI40fx4J7sygpLosTrli' ]

此外,我有var等于userToken子对象中的最后一个标记(当然可以预期:不是最后一个,但要在子对象中。)

console.log (editAuth);
zacr6_VBjHTsArov1LmQyZFLwI40fx4J7sygpLosTrli

那么如何解析userToken以找到与editAuth匹配的内容?如果userToken只是一个String,那么这很简单,但在这里......

由于

2 个答案:

答案 0 :(得分:1)

是否有理由将所有令牌存储为数组,而不是每次只更新一个字符串?

除此之外,您可以使用方便的下划线函数_.contains来检查数组是否包含值

示例:

_.contains( userToken, editAuth ); //returns true or false

答案 1 :(得分:1)

在这种情况下,您只是尝试在字符串数组中搜索字符串。 @Sean已经提供了一个解决方案。

如果您使用的是流星ecmascript包,那么您只需使用原生的Array.includes方法即可。

userToken.includes(editAuth);

另一方面,在使用ECMAScript 2015+一段时间之后,我发现我几乎可以使用本机API来使用下划线或lodash。看看吧!