Javascript 如何将JSON对象的第一个元素移动到末尾?
嗨,我有这样的JSON:Javascript 如何将JSON对象的第一个元素移动到末尾?,javascript,jquery,json,Javascript,Jquery,Json,嗨,我有这样的JSON: [ "supplier" : "Apple", "features" : { "0": [ { "feature_id": "58d1b42ec2ef165bbfca0873", "symbol": "tick" }, { "feature_id": "58d4b843bd966f52093ce32f", "symbol":
[
"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将features对象键“0”移动到键“0”之后的末尾?我尝试使用array.push(array.shift());但它抛出错误,表示“array.shift()”不是函数。我猜.features不是数组,那么如何将对象移动到末尾?是否有理由将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");
//现在功能[“0”]功能[“1”] 您的意思是说“在键“1”之后结束”而不是“在键“0”之后结束”吗?这是正确的。实际上,features是一个键名为“0”、“1”的对象……发布您尝试过的内容(代码)嗨,谢谢Dan,我刚刚通过删除索引键将对象更改为数组。现在我可以使用shift()。太棒了。很高兴听到这个消息!