反向json javascript
有没有一种便宜的方法可以逆转:反向json javascript,javascript,jquery,json,reverse,Javascript,Jquery,Json,Reverse,有没有一种便宜的方法可以逆转: { "10": "..." "11": "...", "12": "...", "13": "...", "14": "...", } 因此,我得到: { "14": "...", "13": "...", "12": "..." "11": "...", "10": "...", } reverse()似乎不适用于json对象。我能想到的唯一方法是循环所有元素并创建一个数组。感觉
{
"10": "..."
"11": "...",
"12": "...",
"13": "...",
"14": "...",
}
因此,我得到:
{
"14": "...",
"13": "...",
"12": "..."
"11": "...",
"10": "...",
}
reverse()似乎不适用于json对象。我能想到的唯一方法是循环所有元素并创建一个数组。感觉应该有更好的方法
编辑:感谢所有帮助更新:
如果每个键都有按时间顺序排列的数据呢。当我在对象上使用$。时,它从上到下贯穿对象,我没有意识到这是不可靠的
以下是我想做的:
$.each(object, function (key, value) {
function foo (key, value);
});
我不想在最后3对上运行foo,也就是说,我只想使用最后3对。我想如果我能逆转它们,我就可以运行前三个并停止
我有没有办法只做最后三个?如果最后3个订单不可靠,是否有更安全的方法获取最后3个订单。最后3个将具有最大的数字键
谢谢
编辑2:
我最终决定在服务器端进行操作。我正在重新组织我的数据库,这样相关的子文档现在就充满了可以用mongodb查询的文档。谢谢。Javascript关联数组无序。您不能依赖于属性的任何特定顺序 来自Mozilla开发者网络 尽管ECMAScript进行迭代 对象顺序 它可能依赖于实现 似乎所有主流浏览器都支持 基于 最早添加的属性优先 (至少对于不在 原型)。然而,在 使用Internet Explorer时 删除一个属性,有些混乱 行为结果,防止其他 浏览器避免使用简单对象 像对象文字一样有序 关联数组。在Explorer中 属性值确实设置为 未定义,如果稍后添加一个 具有相同名称的属性 属性将在其旧 位置--不在 正如人们所期望的那样,迭代序列 在删除属性和 然后又加了回去 所以如果你想模拟一个有序的 跨浏览器中的关联数组 环境,您必须 使用两个单独的阵列(一个用于 键和其他值),或 构建单个属性的数组 物体等
这可能会有帮助。将json对象中的所有键放入一个可以排序的数组中
var a = { 1 : 'x', 3 : 'y', 2 : 'z' };
var keys = []
for (i in a) { keys.push(i); }
keys.sort();
然后,您可以使用reverse()和slice()迭代所需的键
$.each(keys, function(idx, key) {
// do whatever with a[key]
});
按照相反的顺序跟随json
for(json.length;i>=0;i--)
{
console.log(json.[i]);
}
在json对象数组上使用此选项
jsonObjectArray.reverse();
$.each(jsonObjectArray, function(i, item) {
//do something with the item
});
希望这能有所帮助我真的很想知道你这么做想要实现什么。大多数有JSON解析器的语言都不关心对的顺序。@Mark reverse()是一个数组方法,您可以得到对象。另外,您想创建“另一个数组”,但得到的不是数组,而是普通对象。@Mark我认为这两个代码段将创建具有相同特征的对象。一旦计算了对象文字,有关文字中属性顺序的信息就会丢失。@Šime Vidas thank我更新了问题@Ignacio Vazquez Abrams thank you。JSON对象中的顺序永远无法保证。我不明白你为什么想要这个。无论属性的顺序如何,您仍将以相同的方式访问元素。按他们的
键
名称。@Ignacio这不是PHP问题。@Ignacio他说的是JavaScript对象。这是因为JavaScript“关联数组”实际上是具有属性的对象,而不是实际的数组。问题只存在于IE上吗?很酷。很高兴知道这一点,因为我并没有真的和客户进行任何这样的交流。这句话已经不完全正确了。Chrome和Opera(10.50版)的顺序属性的名称都是无符号32位整数,排在所有其他名称之前(然后以插入顺序显示)。