在我的用户架构中,我有一个带有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
,那么这很简单,但在这里......
由于
答案 0 :(得分:1)
是否有理由将所有令牌存储为数组,而不是每次只更新一个字符串?
除此之外,您可以使用方便的下划线函数_.contains
来检查数组是否包含值
示例:
_.contains( userToken, editAuth ); //returns true or false
答案 1 :(得分:1)
在这种情况下,您只是尝试在字符串数组中搜索字符串。 @Sean已经提供了一个解决方案。
如果您使用的是流星ecmascript包,那么您只需使用原生的Array.includes方法即可。
userToken.includes(editAuth);
另一方面,在使用ECMAScript 2015+一段时间之后,我发现我几乎可以使用本机API来使用下划线或lodash。看看吧!