簡體   English   中英

如何將JSON對象的第一個元素移到末尾?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM