在两个localStorage项目之间共享对象

时间:2015-08-08 14:31:45

标签: javascript local-storage

目前我有两个localStorage项目存储了与此相加的对象数组,其中 library(splitstackshape) cSplit(dat, 'colA', ' ') 是一个与项目中的对象无关的对象数组。阵列:

arr

这两个项目在其对象中可以具有相同的对象' { name: 'foo', arr: [] } ,但我不想复制它们之间共享的每一个,以帮助避免达到存储限制。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

您可以计算arr内容的md5哈希值,并将每个arr存储在单独的localStorage项中,并将哈希值设置为key的值localStorage 1}}项目。 (注意md5函数不是本机函数)

var key = md5(arr.toString());
localStorage.setItem(key, arr.toString());

现在我们要存储的对象将如下所示:

{
  name: 'foo',
  arr: key   //note we are just storing a small key here
}

现在,由于具有相同内容的对象将具有相同的哈希值,如果发生,您需要存储具有相同arr值的对象,您将不会使用额外的存储空间。