簡體   English   中英

存儲和加載數據Javascript的最簡單方法是什么?

[英]What's the easiest way to store and load data Javascript?

我有一個用於存儲響度值的哈希圖。 該代碼在Javascript HTML5中。

var Loudness = {};
Loudness['f125'] = {right: [], left: []};
Loudness['f125']['right'].push([0,10,30, 40]);
Loudness['f125']['left'].push([5,15,35,45]);
Loudness['f250'] = {right: [], left:[] };
Loudness['f500'] = {right: [], left: []};
Loudness['f1000'] = {right: [], left: []};

我還有一個用於存儲增益值(基本上與up相同,還帶有“ right”和“ left”(揚聲器的左右兩側))的Hashmap。
區別在於HM的名稱和數組的值。 我還有很多頻率(鍵,例如f250,f500等)要插入到每個Hashmap中。 有沒有更有效的方法來聲明每個頻率鍵及其屬性?
在Hashmap中使用Hashmap是否有意義?
另外,如果將Gain HM放在Loudness HM內,新的Loudness HM的配置將如何? 按鍵(頻率)保持不變嗎? GainHashmap現在是新屬性嗎? 我還沒有找到如何實現它。 語法是什么樣的?
插入和輕松更改數據的最簡單方法是什么(每個頻率的“右”和“左”的“響度”和“增益”)。
您認為有更好的選擇嗎? WebStorageAPI,Hashmap中的Hashmap?
請考慮我不是編程專家。 任何幫助是極大的贊賞。

var Loudness = {};
    var freqs = ['f125', 'f250', 'f500', 'f1000', 'f1250'];
    var values = [0, 10, 30, 40, 5, 15, 35, 45];
    for(var i in freqs){
        Loudness[freqs[i]] = {left : [], right : []};
        Loudness[freqs[i]].Gain = {left : [], right : []};
        for(var j in values){
            var v = values[j];
            if(v === 0 || v % 2 === 0){
                Loudness[freqs[i]]['right'].push(v);
                Loudness[freqs[i]].Gain['right'].push(v); 
            } else {
                Loudness[freqs[i]]['left'].push(v);
                Loudness[freqs[i]].Gain['left'].push(v); 
        }
    }
}

試試這個。 為了獲得您的收益:

Loudness['f125'].Gain.left[0]

基本上,如果您需要更多的頻率,只需將它們添加到頻率陣列。

因此,將增益作為Loudness HM內部屬性的想法是完美的。
問題是不允許訪問此Loudness HM(無論在何處被聲明)。
1)我試圖通過特權方法返回它來使它成為可能。
2)我什至在構造函數中聲明了它(使用this.Loudness = {};而不是var Loudness = {} ;,但是在嘗試訪問時收到諸如“ Uncaught TypeError:Can not read property'250'of undefined”之類的錯誤這個值,使用它的一部分公共方法:

AudiometrySample.prototype.loudnessToGain = function (frequency, loudness, activeChannel) {
...
console.log("this.Loudness[250] is"+ this.Loudness);
if (this.activeChannel === "right") {
  for (var j = 0; j < this.Loudness[this.frequency].right.length; j++) {
    if (this.Loudness[this.frequency].right[j] === this.loudness) {
      this.wantedGain = this.Loudness[this.frequency].Gain.right[j];
      this.currentPairIndex = j;
    }
  }
}

此控制台日志返回“未定義”。 如何使其可訪問?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM