我有一个用于存储响度值的Hashmap。代码在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: []};
我还有一个用于存储增益值的Hashmap(基本上与up相同,也是w /"右"和"左"(音频扬声器的右侧和左侧)属性。
区别在于HM的名称和数组的值。我有很多频率(键,例如f250,f500,......)仍然要插入每个Hashmap。是否有更有效的方式来声明每个频率键及其属性?
在Hashmap中使用Hashmap是否有意义?
此外,如果将增益HM放入Loudness HM中,那么新的Loudness HM配置会如何?键(频率)是否保持不变? GainHashmap现在是一个新属性吗?
我还没有找到如何实现它。语法是什么样的?
什么是插入和轻松更改数据的最简单方法("响度""增益""右""左" ,对于每个频率)
你认为有更好的选择吗? WebStorageAPI,Hashmap里面的Hashmap?
请注意,我不是编程方面的专家。任何帮助都会得到极大的赞赏。
答案 0 :(得分:0)
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]
基本上,如果您需要更多频率,只需将它们添加到freqs数组。