展平物体的缺点是什么?

时间:2014-10-08 18:43:38

标签: javascript arrays performance

我有一些数据非常适合嵌套的分类结构。起初我使用嵌套映射来表示它,但我想也许使用由包含每个类别关键字的元组索引的扁平结构可能更节省空间。

例如,假设我有数据狗,猫,树,金,银 首先,假设我有以下结构,其中箭头表示地图中的键值对

animal -> {barks -> "dog"
           purrs -> "cat"}
plant  -> {rooted -> "tree"}
mineral -> {golden -> "gold"
            silvery -> "silver"}

但现在,我在想为什么不只是

['animal','barks'] -> 'dog'
['animal', 'purrs'] -> 'cat'
['plant', 'rooted'] -> 'tree'
['mineral','golden'] -> 'gold
['mineral', 'silvery'] -> 'silver'

所有在同一个平面物体中?

这有什么表现,风格或其他方面的缺点吗?

我能想到的是,在这个例子中,更难获得所有矿物质或所有动物 - 我必须通过线性搜索所有关键来收集它。还有别的吗?

1 个答案:

答案 0 :(得分:0)

好吧,首先,在ES6得到广泛支持之前,您将无法使用数组作为对象键,因此您必须包含一些其他级别的间接来正确存储事物,可能类似于:

{
    'animal~barks': 'dog',
    'animal~purrs': 'cat',
    ...
}

这真的使编码变得更加困难。

你也会增加你的记忆消耗量,大概是通过重复,例如“动物”来增加你的记忆消耗。

所以我认为有几次罢工。