【发布时间】:2015-08-28 09:08:09
【问题描述】:
我有一个如下所示的本地存储:
Key: Savedme
Value:
{
"Bob":["1","1"],
"John":["2","1"],
"Mom":["3","1"],
"Dad":["1","2"],
"Tom":["3","2"],
"Skipper42":["2","3"],
"Hated_41":["3","3"],
"Greeneggs":["2","2"],
"William":["1","3"]
}
我需要以某种方式对其进行排序,使其看起来像这样
{
"Bob":["1","1"],
"Dad":["1","2"],
"William":["1","3"]
"John":["2","1"],
"Greeneggs":["2","2"],
"Skipper42":["2","3"],
"Mom":["3","1"],
"Tom":["3","2"],
"Hated_41":["3","3"]
}
我尝试将它存储在这样的矩阵中:
var $runthrough = [[]];
$runthrough[$x,$y] = $values;
其中 x 是第一组数字,y 是下一组数字,然后值是 Bob、Dad 等...从那里我可以对矩阵的两个部分进行 foreach 并且它会完成,但是当我在遍历一组对象后使用此方法,第二组给出“未定义”,即使我已经设置了一些触发器来检查并且它实际上并没有未定义。
var loadarray = JSON.parse(localStorage.getItem( 'savedme' ));
$.each(loadarray, function(k, v) {
if(typeof k === 'undefined' || !k){
console.error("undefined found at k!");
};
if(typeof v[0] === 'undefined' || !v[0]){
console.error("undefined found at x!");
};
if(typeof v[1] === 'undefined' || !v[1]){
console.error("undefined found at y!");
};
});
所以我开始意识到,我可能对数组做错了,所以我认为整理数组然后使用相同的函数会更快。它必须这样排序,因为它基本上要输出到矩阵表,我尝试这样排序:
{
"1":["1","Bob"],
"2":["1","John"],
}
但是...索引值 1 会被最后一个值覆盖
【问题讨论】:
-
您不能在 javascript 中对对象进行排序
标签: javascript jquery arrays sorting local-storage