我对javascript和firebase很陌生。我只想问一问,是否有机会在函数之外调用我的变量?
下面是我的示例代码:
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)
}
}我可以在函数validityFrom之外调用名称、描述、gotData等吗?我会感谢你的帮助。(预先多谢!)
发布于 2017-09-13 08:24:41
将变量定义为全局变量
//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)编辑
您可以创建一个数组来获取所有变量,因为您可能拥有多维数据。
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)
}https://stackoverflow.com/questions/46192463
复制相似问题