2017-09-13 8 views
3

javascriptとfirebaseの新機能です。関数の外に変数を呼び出す機会があるかどうか尋ねたいのですが?javascriptの関数の外で変数を呼び出す

ここ

は私のサンプルコードです:

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) 
    } 
} 

私は機能gotDataの名前、説明、validityFromなど外呼び出すことができますか?私は助けを感謝します。前もって感謝します! :)

+2

を有することができるように、すべての変数を取得するための配列を作成することができ

//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

グローバル変数として変数を定義します。それの外の機能 "? –

+1

短い答え:いいえ。以下は「変数スコープ」に関するページです:https://www.w3schools.com/js/js_scope.asp –

+2

「自分の変数をその関数の中に呼び出す」コードを表示できますか? – superdev

答えて

3

は、あなたがの内側に」あなたは多次元データ

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) 
} 
+1

値はループで代入されるように割り当てられます。これはあまり役に立たないかもしれません。 –

+0

それでは、ループのどの部分からアクセスしたいのか、両方の方法で使うことはできません。 – Dellirium

+0

グローバル変数はコードの匂いであり、良い選択ではありません。 – Script47

関連する問題