Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从多个返回值构建JavaScript选项数组_Javascript_Arrays_Sharepoint_Javascript Objects - Fatal编程技术网

从多个返回值构建JavaScript选项数组

从多个返回值构建JavaScript选项数组,javascript,arrays,sharepoint,javascript-objects,Javascript,Arrays,Sharepoint,Javascript Objects,我正在尝试构建一个基线JS文件,将其包含在我的一些页面中,以从SharePoint网站返回信息。我想为以下内容对服务器进行三次ajax调用:siteGroups、siteRoles和currentUser信息,并构建一个选项数组,我可以稍后使用点符号访问它。(例如options.siteGroup、options.siteRoles、options.currentUser.UserName等) var选项=(函数(){ var currentUser=(函数(){ var userInfo=[]

我正在尝试构建一个基线JS文件,将其包含在我的一些页面中,以从SharePoint网站返回信息。我想为以下内容对服务器进行三次ajax调用:siteGroups、siteRoles和currentUser信息,并构建一个选项数组,我可以稍后使用点符号访问它。(例如options.siteGroup、options.siteRoles、options.currentUser.UserName等)

var选项=(函数(){
var currentUser=(函数(){
var userInfo=[];
功能完成(数据){
对于(i=0;i
当我输入console.log(选项)时;我得到了一个具有正确值的数组,但是每个组合(options.currentUser、options.currentUser.userName等)都产生了userName未定义或者currentUser[0]无法在位置0处找到值。提前感谢您的帮助


“Image of console.log”

您没有从选项功能模块返回任何内容,是吗?尝试将
return{siteoles,siteGroups,currentUser}
放在最外层函数末尾之前。如你所见,我使用对象而不是数组。我同意。很抱歉我漏掉了那部分。我把它放在里面了。我添加了一张回应的图片,以及我目前如何访问itI,但我仍然没有弄清楚这一点。希望我的第一条评论不会让人困惑。看起来您调用异步js代码是为了填充几个数组,但您试图在请求完成之前访问数组中的元素。您需要一种跟踪何时加载所有数据的方法。(一个简单的计数器可以工作)。不过,如果你真的需要一次加载所有的数据,也许可以重新考虑你解决问题的方法。只是一个建议。我相信数据在我调用之前已经加载了。或者至少在扩展对象时,我推送到它的所有数据都如我所愿。问题是访问它。图片显示了我从console.log(siteData)和console.log(siteData.currentUser)=[]>[0]:groupId:123[1]:groupName:Adam获得的信息。问题是,返回“groupName”的console.log(siteData.currentUser[0].groupName)不是定义的变量
var options = (function(){
    var currentUser = (function(){ 
        var userInfo = [];
        function complete(data){
            for(i = 0; i < data.d.Groups.results.length; i++){
                var user = {groupId : data.d.results[i].groupId, groupName : 
           data.d.results[i].groupName, UserName : data.d.UserName, UserId : 
           data.d.UserId};
                UserInfo.push(user);
            }
        };
        getCurrentUser(url, query, complete);
        return userInfo;
    })();
    // Get All Site Permission Groups
    var siteGroups = (function(){
        function complete(data){
            var siteGroups = [];
            for(j = 0; j < data.d.results.length; j++){
                var group = {groupName : data.d.results[j].Title, groupId : 
                            data.d.results[j].Id};
                siteGroups.push(group);
            };
            $('.SiteGroups').append(option);
        };
        getSiteGroups(url, complete);
        return siteGroups;
    })();
    // Get All Role Definitions to be used for role assignment
    var siteRoles = (function(){
        var roles = [];
        function complete(data){
            var option;
            for(s = 0; s < data.d.results.length; s++){
               var role = {roleId : data.d.results[s].Id, roleName : 
               data.d.results[s].Name};
               roles.push(role);
            }
        }
        getRoleDefinitions(url, complete);
        return roles;
    })();
    return {currentUser, siteRoles, siteGroups};
})();