首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简化if语句

简化if语句
EN

Stack Overflow用户
提问于 2013-11-06 18:22:50
回答 1查看 300关注 0票数 0

我有一个带有if语句的函数,它包含两个单独的AJAX调用操作。基于一个名为subjectType的变量,调用的条件会发生变化。如果我试图获取用户信息,我需要给它userLoginName。如果我试图获取网站信息,我需要给它的webURL。

我可以使用if语句来完成这个任务,但是是否有更好的方法来做到这一点而不必重复大多数行呢?

代码语言:javascript
复制
var subjectType = if(/*I'll check the value of the drop down to see if a user or site report was asked for*/)?"GetGroupCollectionFromUser":"GetGroupCollectionFromWeb";

function parseSubjectColFromUser(subject){
  var subjectGroups = [];
  if (subjectType){
    $().SPServices({
      operation: "GetGroupCollectionFromUser",
      userLoginName: subject,
      completefunc: function(xData, Status){
        $(xData.responseXML).find("Group").each(function(){
            subjectGroups.push($(this).attr('Name'));
        });
      }
    });
  }else{
    $().SPServices({
      operation: "GetGroupCollectionFromWeb",
      webURL: subject,
      completefunc: function(xData, Status){
        $(xData.responseXML).find("Group").each(function(){
            subjectGroups.push($(this).attr('Name'));
        });
      }
    });
  }
  return subjectGroups;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 18:26:20

应该很容易.我还以为您希望在这里使用回调函数,因为您是通过AJAX请求来实现的。

代码语言:javascript
复制
function parseSubjectColFromUser(subject, myCallback){
    var subjectGroups = [];
    var params = {
        operation: subjectType ? "GetGroupCollectionFromUser" : "GetGroupCollectionFromWeb",
        completefunc: function(xData, Status){
            $(xData.responseXML).find("Group").each(function(){
                subjectGroups.push($(this).attr('Name'));
            });
            myCallback(subjectGroups);
        }
    };

    if (subjectType) {
        params.userLoginName = subject;
    } else {
        params.webURL = subject;
    }

    $().SPServices(params);
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19819761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档