【问题标题】:reverse the JSON Array stored in javascript variable反转存储在 javascript 变量中的 JSON 数组
【发布时间】:2014-03-09 07:05:13
【问题描述】:

我有一个 json 数组以下列格式存储在变量中:

{"info": 
[ {"typeid": "877", "recid": "10", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "877", "recid": "11", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "459", "recid": "3", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "459", "recid": "4", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "456", "recid": "5", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "456", "recid": "6", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"}
]}

我想反转内部 JSON 数组以获得 info.like this

{"info": 
[ {"typeid": "456", "recid": "6", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "456", "recid": "5", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "459", "recid": "4", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "459", "recid": "3", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "877", "recid": "11", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"},
  {"typeid": "877", "recid": "10", "repeaterid": "0",  "pageid": "26966", "maxrecords": "1"}
]}

我怎样才能做到这一点。

【问题讨论】:

  • 您是要对数组进行排序还是只反转它?

标签: javascript jquery arrays json


【解决方案1】:

使用Javascript的数组reverse方法:

var objAssetSelection = $.parseJSON(strAssetSelection);
objAssetSelection.info.reverse();
console.log(objAssetSelection);

【讨论】:

  • 获取未定义的信息。
  • 您是否将var 替换为包含该对象的变量的实际名称?
  • 啊,您还没有将 JSON 解析为对象。
  • 我的错.....谢谢barmar。这很有帮助。最后一个问题是可以反转数组并根据 pageid 对它们进行排序吗??
  • 你可以对数组做任何你想做的事情。 Javascript 有一个sort 函数,ojovirtual 的回答显示了如何使用它。
【解决方案2】:

你试过myObject.info.reverse()吗?

更多关于Javascript Array Reverse

【讨论】:

  • 获取未定义的信息。
【解决方案3】:

而且很简单(需要 JQuery):

function test() {
    var myArray = [1, 2, 3, 4];
    var myReversedArray = new Array();
    $(myArray).each(function (key) {
        myReversedArray.unshift(myArray[key]);
    });
    myArray = myReversedArray;
    $(myArray).each(function (key) {
        console.log(myArray[key]);
    });
}

【讨论】:

【解决方案4】:
var sorted=yourobject.info.sort(function(a,b){return a.typeid-b.typeid});

参考:http://www.w3schools.com/jsref/jsref_sort.asp

【讨论】:

    【解决方案5】:

    成功地将 JSON 数组转换为反向 JSON 数组 101% 工作

    var ActualArray = [{
            "bag":'large',
            "color":'blue'
        },{
            "bag":'small',
            "color":'red'
        },{
            "bag":'medium',
            "color":'green'
        },{
            "bag":'large',
            "color":'pink'
        }]
        var ReverseArray = [];
        var length = ActualArray.length;
        for(var i = length-1;i>=0;i--){
            ReverseArray.push(ActualArray[i]);
        }
        console.log("actual array");
        console.log(JSON.stringify(ActualArray));
        console.log("reverse array");
        console.log(JSON.stringify(ReverseArray));
    

    您的日志将如下所示

    actual array
    [{"bag":"large","color":"blue"},{"bag":"small","color":"red"},{"bag":"medium","color":"green"},{"bag":"large","color":"pink"}]
    reverse array
    [{"bag":"large","color":"pink"},{"bag":"medium","color":"green"},{"bag":"small","color":"red"},{"bag":"large","color":"blue"}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2014-08-17
      • 2021-04-02
      • 2012-12-31
      相关资源
      最近更新 更多