数组

数组支持

野狗没有原生对数组的支持,这是因为数组中的元素无法映射为一个对应的数据 URL 。但是野狗支持对数组进行存储和读取操作。当存储一个数组时,数据实际上将会被当作 key 为整数和 value 为 对象 的键值对来存储。如下:

// 要存储的数组数据
['hello', 'world']
// Wilddog实际存储
{0: 'hello', 1: 'world'}

当数据在回调事件中被处理时,数据被转换回各平台语言中的原生数组。数据被还原为数组,需要符合条件:当 0 到最大的 key 之间,超过一半以上有值。在符合条件时,野狗会自动将这些数据转换回数组:

// 要存储的数据
['a', 'b', 'c', 'd', 'e']
// Wilddog 实际存储
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}

// 由于key是数值,并且是连续有序的,
// 因此当查询数据时,将会得到:
['a', 'b', 'c', 'd', 'e']

// 然而,当我们删除掉a,b和d之后,
// 就不满足“大部分key是连续的数值”这一条件了,因此
// 当查询时,我们得到的是:
{2: 'c', 4: 'e'}
R