我当前的 webApp 有一个 OOD 系统,每个元素都有一个 id 并放置在每个页面的 elements 数组中。无论 elemenet 放置在哪个页面,每个新元素的 id 都是一个连续的数字,因此,例如,如果我们在一个有 7 个页面的项目中有 25 个元素,则无论放置在哪个页面,新元素的 ID 都会26岁。
例如,项目中有 2 个元素(ID 分别为 1 和 4)的第一页将是:
[undefined, proto.constructor, undefined, undefined, proto.constructor ]
通过这种方式引用元素会非常容易,因为我需要的只是元素的页码和 ID,并且我可以调用该元素,例如 Pages[1].elements[1]。但我使用此方法的问题是,它会导致最终 JSON 中出现过多的“未定义”元素,从而使 JSON 不必要地过大。有什么办法解决这个问题吗?
使用 JS 对象而不是数组。它仍然可以具有看起来像数字的键(它们实际上是字符串,但对于数组也是如此)并且具有相同的恒定时间查找优势。
所以,不要像这样的代码......
var objectsById = [];
objects[object.id] = object;
…而是像这样编写代码:
var objectsById = {};
objects[object.id] = object;
JSON 输出将很简洁(尽管不一定已排序):
{ "42":"someserializablevalue", "17":"another JSON value" };
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)