用 jquery 颠倒 json 顺序
Reverse json order with jquery
我有一个 json 对象,我想颠倒顺序。
我的json:
var json = {
'car 1' : {
'brand' : 'Seat',
'model' : 'Ibiza',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida'
}
},
'car 2' : {
'brand' : 'Volkswagen',
'model' : 'Golf',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida',
'n4' : 'abs'
}
},
(...)
}
我试过:
$.each(json.reverse(), function(index, value) {...}
但这给了我一个错误。我该怎么做?
提前谢谢。
对象中属性的顺序不能颠倒,因为它们不是基于索引的。只有数组可以反转,因为它们是基于索引的。
reverse() 不起作用,因为它是 Array 而不是 Object 的函数。将您的对象转换为数组,它应该可以正常工作。
var json = {
'car 1' : {
'brand' : 'Seat',
'model' : 'Ibiza',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida'
}
},
'car 2' : {
'brand' : 'Volkswagen',
'model' : 'Golf',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida',
'n4' : 'abs'
}
}
};
var jsonArr = Object.keys(json).map(function(key) {
return [key, json[key]];
});
jsonArr = jsonArr.reverse();
console.log(jsonArr[0]); // Will print car 2
console.log(jsonArr[1]); // Will print car 1
我有一个 json 对象,我想颠倒顺序。
我的json:
var json = {
'car 1' : {
'brand' : 'Seat',
'model' : 'Ibiza',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida'
}
},
'car 2' : {
'brand' : 'Volkswagen',
'model' : 'Golf',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida',
'n4' : 'abs'
}
},
(...)
}
我试过:
$.each(json.reverse(), function(index, value) {...}
但这给了我一个错误。我该怎么做?
提前谢谢。
对象中属性的顺序不能颠倒,因为它们不是基于索引的。只有数组可以反转,因为它们是基于索引的。
reverse() 不起作用,因为它是 Array 而不是 Object 的函数。将您的对象转换为数组,它应该可以正常工作。
var json = {
'car 1' : {
'brand' : 'Seat',
'model' : 'Ibiza',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida'
}
},
'car 2' : {
'brand' : 'Volkswagen',
'model' : 'Golf',
'equip' : {
'n1' : 'vidros electricos',
'n2' : 'fecho central',
'n3' : 'dirercção assistida',
'n4' : 'abs'
}
}
};
var jsonArr = Object.keys(json).map(function(key) {
return [key, json[key]];
});
jsonArr = jsonArr.reverse();
console.log(jsonArr[0]); // Will print car 2
console.log(jsonArr[1]); // Will print car 1