2017-02-20 29 views
0

創建數組名稱我想從函數創建一個數組。我該如何去做這件事,以便數組名稱在參數中傳遞。因此,如果我使用arrayCreate(「Hello」),我會有一個數組Hello = []。如果我使用數組,顯而易見的問題是我傳遞一個字符串,所以我如何克服這一點。如何從函數參數

要解釋一點關於我的問題,我所看到低於該更新圖表的功能:

 self.updateChart = function(name){ 

     if (typeof chartData == 'undefined') { 
      chartData = []; 
     } 
     chartData.push({ 
      date: game.tickCount, 
      visits: self.price, 
     }); 
     priceLabour.validateData(); 
     return chartData; 
     } 

現在的「chartData = []」和「priceLabour」我想它是動態的,並根據「名稱」參數進行更改。

+1

即使你得到它,你如何處理命名數組? –

+0

我想顯示不同的圖表,需要不同的命名數組 – epayne

+0

,你如何交付數據? –

回答

1

您不能只通過字符串創建變量。您可以創建,分配和使用字符串對象讀取屬性:

var obj = {}; 
obj[name] = []; 
obj[name].push(...); 
+0

因此,我無法更改剛剛添加的已編輯代碼? – epayne

+0

@epayne沒有,我可以告訴。但似乎是全球性的漏洞。 –

+0

我聲明瞭chartData = [];功能之外 – epayne

0

您可以創建一個動態命名的數組作爲對象的屬性。不完全確定你的需求是什麼,但這裏是一個基於你提供的代碼的例子。

var data = {}; 

    self.updateChart = function(name){ 
    // Store a shallow clone of the chartData array in the data obj 
    data[name] = chartData.slice(0); 

    if (typeof data[name] == 'undefined') { 
     data[name] = []; 
    } 
    data[name].push({ 
     date: game.tickCount, 
     visits: self.price, 
    }); 
    priceLabour.validateData(); 
    return data[name]; 
    }; 

調用updateChart後,你應該能夠使用data["myString"]別處參閱您的陣列。