我想弄清楚在javascript中存储和访问数据的最佳方式是什么。
我想选择与之前未知的“标识符”相关联的数据,或者添加带有新随机“标识符”的新数据集。
我是用数组还是对象做的?
{
"data": [
{
"key1": "identfifier1",
"key2": "value2",
"key3": "value3"
},
{
"key1": "identfifier2",
"key2": "value2",
"key3": "value3"
}
]
}
{
"data": {
"identfifier1": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
},
"identfifier2": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
}
任何想法,方法,最佳方法吗?比另一方好一点?
答案 0 :(得分:1)
使用JSON(您的第二种方法)。它的目的是为了这个目的,有许多本机功能和额外的库来支持您的工作。使用数据库(例如CouchDB或MongoDB)很容易,无需转换对象。
答案 1 :(得分:1)
如果您执行的读取次数多于写入次数,则最好使用该对象并保留可在需要时对其进行排序的单独的对象键数组。
data = {
identfifier1 : { key1: value1,
key2: value2,
key3: value3
},
identfifier2 : { key1: value1,
key2: value2,
key3: value3
}
}
当你添加新密钥时:
data.identifier3 = ...
更新订单:
var sorted = Object.keys( data ).sort();
以有序方式迭代:
for( var l = sorted.length, i = 0; i < l; ++i ) {
alert( data[sorted[i]] );
}
或者你只能在绝对需要时进行排序,这样即使写入也会更高效。
你可以为这一切创建一个包装“类”,只需要在阅读时快速阅读和排序。