[英]How to move first element of the JSON object to the end?
嗨,我有这样的JSON:
[
"supplier" : "Apple",
"features" : {
"0": [
{
"feature_id": "58d1b42ec2ef165bbfca0873",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd966f52093ce32f",
"symbol": "cross"
}
],
"1":[
{
"feature_id": "58d1b42ec2ef165bb33422087",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd91ads2jfloice32",
"symbol": "cross"
}
]
},
"supplier" : "Orange",
"features" : {
"0": [
{
"feature_id": "58d1b42ec2ef165bbfca0873",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd966f52093ce32f",
"symbol": "cross"
}
],
"1":[
{
"feature_id": "58d1b42ec2ef165bb33422087",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd91ads2jfloice32",
"symbol": "cross"
}
]
}
]
如何使用jQuery / javascript将功能对象键“ 0”移动到键“ 0”之后的末尾? 我试图使用array.push(array.shift()); 但是它抛出错误,说“ array.shift()”不是一个函数。 我猜.features不是数组,那么如何将对象移到末尾?
要素是对象而不是数组是有原因的吗? 您可以执行以下操作:
"features" : [
[
{
"feature_id": "58d1b42ec2ef165bbfca0873",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd966f52093ce32f",
"symbol": "cross"
}
],
[
{
"feature_id": "58d1b42ec2ef165bb33422087",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd91ads2jfloice32",
"symbol": "cross"
}
]
}
如果您只是计划使用数字作为键,那没有问题。 否则,您可以使用Object.keys(features)
获得对象键的数组(在您的情况下为“ 1”,“ 2”,...),并在需要时使用它们引用对象。
使用临时变量交换
var data = {
"supplier" : "Apple",
"features" : {
"0": [
{
"feature_id": "58d1b42ec2ef165bbfca0873",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd966f52093ce32f",
"symbol": "cross"
}
],
"1":[
{
"feature_id": "58d1b42ec2ef165bb33422087",
"symbol": "tick"
},
{
"feature_id": "58d4b843bd91ads2jfloice32",
"symbol": "cross"
}
]
}
};
function swap(obj,index1,index2){
var temp = obj[index1];
obj[index1] = obj[index2];
obj[index2] = temp;
return obj;
}
data.features = swap(data.features,"0","1");
//现在features [“ 0”] <==> features [“ 1”];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.