动态创建关联数组

Posted

技术标签:

【中文标题】动态创建关联数组【英文标题】:dynamically creating an associative array 【发布时间】:2014-10-22 18:23:16 【问题描述】:

我正在寻找一个散列,创建一系列深层键,然后在末尾附加另一个散列。

给定...

var hash_a = 'foo': 'bar'
var hash_b = 'alpha': 'beta'
var array = ['a', 'b', 'c']

如何生成以下内容?


  'foo': 'bar',
  'a':
    'b':
      'c': 
        'alpha': 'beta'
       
    
  
;

【问题讨论】:

不要只问怎么做,展示你迄今为止的尝试:***.com/help/on-topic 【参考方案1】:

这应该可以解决问题:

var hash_a = 'foo': 'bar';
var hash_b = 'alha': 'beta';
var array = ['a', 'b', 'c'];

function build(a,b,c)
    var o=c.reduceRight(function(o, n) var b=; b[n]=o; return b; , b);
    for(x in a) o[x]=a[x]; 
    return o;

这是fiddle 玩。 有关Array.prototype.reduceRight() 的进一步解释,请参阅MDN。

【讨论】:

这很接近,但仍然不太正确。在函数第二行的上下文中,b 被附加到散列中,不是作为散列而是作为 [Object] 你的对象有什么不同?看看jsfiddle.net/a8mmfpxw/3 使用了警报,因为在键盘上打字 恐怕,以我目前对js的理解(不多!),我无法回答这个问题。也许这会有所帮助gist.github.com/adamwong246/2d732c3537f4774334f6 好的,我想通了。这是对 js 工作原理的根本误解。直到我使用了JSON.stringify,我才意识到[Object] 一个哈希值,它只是没有被评估。

以上是关于动态创建关联数组的主要内容,如果未能解决你的问题,请参考以下文章

从 JSON 使用 Javascript 创建动态关联数组

根据 db 值创建动态关联

Java动态代理与静态代理的定义与区别??

创建结构元素的动态数组,然后创建结构的动态数组。 C++

java中如何创建动态数组

怎么使用new操作符创建动态数组?