在javascript或Meteor中使用函数参数获取对象值
我有一个简单的函数,如下所示:在javascript或Meteor中使用函数参数获取对象值,javascript,meteor,Javascript,Meteor,我有一个简单的函数,如下所示: getCurrentUserInfo: function (userId, reference) { var scanUser = Meteor.users.find({"_id": userId}).fetch()[0]; return scanUser.reference; } getCurrentUserInfo(Meteor.userId(), "_id"); 当用户使用如下功能时: getCurrentUserInfo: func
getCurrentUserInfo: function (userId, reference) {
var scanUser = Meteor.users.find({"_id": userId}).fetch()[0];
return scanUser.reference;
}
getCurrentUserInfo(Meteor.userId(), "_id");
当用户使用如下功能时:
getCurrentUserInfo: function (userId, reference) {
var scanUser = Meteor.users.find({"_id": userId}).fetch()[0];
return scanUser.reference;
}
getCurrentUserInfo(Meteor.userId(), "_id");
它给了我一个“未定义”的结果,我相信这是由于字符串参数“\u id”造成的,因为如果我直接返回scanUser.\u id
,它就会工作。我不知道如何使它工作。有什么建议或相关话题吗?谢谢。试试这个:
getCurrentUserInfo: function (userId, reference) {
var scanUser = Meteor.users.find({"_id": userId}).fetch()[0];
return scanUser[reference];
}
您需要使用括号表示法通过字符串访问对象的属性。
返回scanUser.\u id代码>
因为您在函数中隐式地写入了_id
返回扫描用户[参考]
这是更通用的,适用于任何属性Stephen Woods-OMG,很快,现在我意识到scanUser是一个数组,所以我应该使用数组。我认为在查询的最后添加[0]会删除数组。非常感谢Woods先生:)Stephen Woods下面的回答起了作用,我想在我的查询末尾添加[0]
会删除scanUser的数组属性,但事实并非如此,因此我必须使用scanUser[reference]
,并将其整理出来