Jude Aquino
Jude Aquino

Reputation: 31

Calling variables outside of a function in javascript

I'm new to javascript and firebase. I would just like to ask if there is a chance to call my variables outside of my function?

Here is my sample code:

function gotData (data) {
  console.log(data.val())
  var promotions = data.val()
  var keys = Object.keys(promotions)
  console.log(keys)
  for (var i = 0; i < keys.length; i++) {
    var k = keys[i]
    var name = promotions[k].promotionName
    var description = promotions[k].description
    var validityFrom = promotions[k].validityPeriodFrom
    var validityTo = promotions[k].validityPeriodTo
    var dateCreated = promotions[k].dateCreated
    var dateUpdated = promotions[k].dateUpdated
    console.log(name, description, validityFrom, validityTo, dateCreated, dateUpdated)
  }
}

Can I call name, description, validityFrom, etc outside of the function gotData? I'll appreciate a help. Thank you in advance! :)

Upvotes: 3

Views: 64

Answers (1)

Jigar Shah
Jigar Shah

Reputation: 6223

Define variable as global variable

//above function
var name, description, validityFrom, validityTo, dateCreated, dateUpdated;
function gotData (data) {
  console.log(data.val())
  var promotions = data.val()
  var keys = Object.keys(promotions)
  console.log(keys)
  for (var i = 0; i < keys.length; i++) {
    var k = keys[i]
    name = promotions[k].promotionName
    description = promotions[k].description
    validityFrom = promotions[k].validityPeriodFrom
    validityTo = promotions[k].validityPeriodTo
    dateCreated = promotions[k].dateCreated
    dateUpdated = promotions[k].dateUpdated
    console.log(name, description, validityFrom, validityTo, dateCreated, dateUpdated)
  }
}
// now you can access variables here
console.log(name, description, validityFrom, validityTo, dateCreated, dateUpdated)

EDIT

You can create an array to get all variables as you may have multidimensional data

var objData = [];
function gotData (data) {

  console.log(data.val())
  var promotions = data.val()
  var keys = Object.keys(promotions)

  for (var i = 0; i < keys.length; i++) {
    var tempObj = [];
    var k = keys[i]
    tempObj['promotionName'] = promotions[k].promotionName;
    tempObj['description'] = promotions[k].description;
    tempObj['validityPeriodFrom'] = promotions[k].validityPeriodFrom;
    tempObj['validityPeriodTo'] = promotions[k].validityPeriodTo;
    tempObj['dateCreated'] = promotions[k].dateCreated;
    tempObj['dateUpdated'] = promotions[k].dateUpdated;

    objData.push(tempObj);
  }
  console.log(objData)
}

Upvotes: 3

Related Questions