我正在尝试将条目从mysql数据库(由PHP通过JSON提供)传输到localfourse数据库。transactions 下列出的记录用id属性编号(在JSON字符串中从1到大约400递增)。我的目标是使用这些id作为localfourse的键。然而,结果如下面DevTools的屏幕截图所示。
var tmp, id;
var json = JSON.parse(data); // data is the JSON encoded string returned from server
for(var i = 0; i < json.transactions.length; i++){
tmp = json.transactions[i];
id = String(tmp.id);
console.log(typeof id);
delete tmp.id;
transactions.setItem(id, tmp).then(function (value) {
//console.log(value);
}).catch(function (err) {
console.log(err);
});
}
resulting database in localforage in DevTools (Screenshot)
我怎样才能让localfourse使用正确的id(1,2,3,4 ... 400等)而不是这些转换的键(看起来是从另一个数字系统派生出来的)?
1条答案
按热度按时间unhi4e5o1#
键是字符串,所以按“1”〈“10”〈“100”〈“11”〈“2”排序。
底层数据存储(IndexedDB)支持数字和排序键,因此您可以删除localfourse并直接使用IndexedDB。
或者,向左填充字符串:
id = ("00000000" + String(tmp.id)).substr(-8);
...这将为您提供:“00000001”〈“00000002”〈“00000010”〈“00000011”〈“00000100”,则表示该数据库已被删除。