如何从函数中获取变量?特别是一个数组

时间:2015-01-26 15:40:42

标签: javascript

如果一个函数中有一个数组,并且我想从这个数组中取出一个值,取决于它是否存在,我将如何使用JavaScript?

要解释这个问题,请查看下面的代码。 。

如果我们有一个功能:

function updateData(dataObj) {
    for (var i = 0; i < dataObj.length; i++) {
        var id = dataObj[i]['id'];
    }

    grabID(dataObj);
}

我正在尝试获取具有值的任何ID,因此我创建了函数grabID

function grabID(dataObj) {
    for (var i=0; i< dataObj.length; i++) {
        var id = dataObj[i]['id'];
        if (typeof(id) == 'string') {
            //take that id and use it in the function below this one
        }
        else {
            continue;
        }       
    }      
}

现在这是我想放置id的函数,所以我可以绘制图形:

function drawGraph() {
    var id = //the id grabbed in the grabID function
             //use this id for drawing purposes
}

所以我需要的唯一帮助是如何从id函数中带来这个grabID字符串。评论的部分是我需要帮助的部分。

我希望这段代码有助于解释我正在寻找的内容。我知道我可能已经编写了不必要的函数或代码行,但这就是我现在想到的方式。函数updateData最初不仅用于抓取一个id(具有值的id)。这就是为什么我创建了另一个名为grabID的函数。

2 个答案:

答案 0 :(得分:0)

尝试从drawGraph功能中调用grabID,就像这样。使用id变量作为drawGraph的参数。

function grabID(dataObj) {
    for(var i=0; i< dataObj.length; i++){
        var id = dataObj[i]['id'];
        if(typeof(id) == 'string')
            drawGraph(id)
        else
            continue;
        }     
    }
}      

function drawGraph()
{
      var id = //the id grabbed in the grabID function
      //use this id for drawing purposes

}

答案 1 :(得分:0)

您可以调用grabID函数并在其中返回ID,然后将调用结果传递给drawGraph函数:

function grabID(dataObj) {
          for(var i=0; i< dataObj.length; i++)
          {
              var id = dataObj[i]['id'];
              if(typeof(id) == 'string')
                   //take that id and use it in the function below this one
                   return id;
              else
                   continue;
          }
    // return null if no ID was retrieved
    return null;     
}

function updateData(dataObj) {
    for (var i = 0; i < dataObj.length; i++) {
       var id = dataObj[i]['id'];
    }
    var id = grabID(dataObj);
    if(id !== null) drawGraph(id);
}

function drawGraph(grabbedId)
{
    var id = grabbedId; //the id grabbed in the grabID function
    //use this id for drawing purposes
}