我一直在试图找出如何通过其密钥,其毫秒我的本地存储对象进行排序。
示例代码
// function that saves to local storage
function saveObjectToLocalStorage(key, object) {
object = JSON.stringify(object);
window.localStorage.setItem(key, object);
}
// function that gets from local storage
function getObjectFromLocalStorage(key) {
var saved = window.localStorage.getItem(key);
if (saved) {
return JSON.parse(saved);
} else {
return null;
}
}
// custom function to get milliseconds since epoch
var getId = getMillis();
// retrieve the existing object from local storage
var fruitEntry = getObjectFromLocalStorage('fruitHistory');
// then add to it
fruitEntry[getId] = {
fruit: 'banana',
weight: '100',
};
// and save it back
saveObjectToLocalStorage('fruitHistory', fruitEntry);
所以本地存储现在看起来是这样
fruitHistory "{
"1111111111111":{"fruit":"banana","weight":"100"},
"1333333333333":{"fruit":"papaya","weight":"300"},
"1222222222222":{"fruit":"tomato","weight":"200"}
}"
我想要做什么,
现在我希望能够将这些条目进行排序基于它们的密钥(id /毫秒),以便我可以按照日期和后续输出的顺序保存它们时间顺序倒序。
我已经试过
我至今无法修改basic examples为我嵌套密钥存储的工作作风。
无法修改Jeremy's answer重新包装我的对象并将其保存回本地存储。这是一两件事至今我试着用他的ES5的例子..
// get my local storage object
var fruitHistory = getObjectFromLocalStorage('fruitHistory');
// create an empty array to add to?
var keysToSort = [];
// is this converting my object to an array? or just extracting the keys to be sorted?
for (var key in fruitHistory) {
//
if (fruitHistory.hasOwnProperty(key)) {
// i have to learn more about push but does this translate just the key to the array, or does it pair the values with the keys?
keysToSort.push(key);
}
}
// this seems to sort the keys just fine
keysToSort.sort(); // Sort as strings.
// this console logging works fine at showing the above sort worked
// i don't understand how it re-pairs the values with the keys
// my attempts at re-upping the object to local storage have saved only the keys with no values attached
// so i havent been able to figure out how to rebuild it back to an object..
// ..so i can re-rup it to local storage
for (var i = 0; i < keysToSort.length; i++) {
console.log(fruitHistory[keysToSort[i]]);
}
感谢杰里米,我一直在努力整合你的答案进入我的代码的答复,但你可以在更新看到我的问题(在'我试过的'下)如何重建并重新保存排序后的对象到本地存储,我有点遗憾。 –
从我的回答:'对象键从来没有按照特定的顺序,所以你不能按照你确切的顺序排序。'你可以做的唯一事情就是当你去使用所说的对象时排序对象键。 –