首页 > 解决方案 > 在 JSON 对象中重新排序数据

问题描述

考虑这个 Javascript 对象和代码:

Javascript 对象

{
    "thing":{
       "data":"some data",
       "thumb":"some data",
       "data1":"some data",
       "data2":"some data",
       "data3":"some data",
    },
    "extra1":[
       {
          "extradata1":"some data",
          "extradata2":"some data",
          "extradata3":"some data",
          "extradata4":"some data"
       },
       {
          "extradata1":"some data",
          "extradata2":"some data",
          "extradata3":"some data",
          "extradata4":"some data"
       }
    ],
    "extra2":[
       {
          "hightlighted": false, 
          "extradata2":"some data",
       },
       {
          "hightlighted": false, 
          "extradata2":"some data",
       },
       {
          "hightlighted": true, 
          "extradata2":"some data",
       },
       {
          "hightlighted": false, 
          "extradata2":"some data",
       }
     ]
}

我想根据值是否为真在“extra2”中找到一个对象,将其删除并将其添加回同一个 json 对象,但位于“extra2”对象的顶部。

目前我的想法是这样的:

for (var i=0; i<object.extra2.length; i++){
        if (object.extra2[i].highlighted === true) {
            highlightStore = object.extra2[i];
            delete object.extra2[i]
            object.extra2.push(highlightStore)
        }
    }

但是我似乎无法让它工作

标签: javascriptjson

解决方案


问题在这里:

object.extra2.push(highlightStore)

数组push()方法将一个或多个元素添加到数组的末尾,但由于您需要在顶部添加项目,您只需使用数组unshift()方法,例如:

object.extra2.unshift(highlightStore)

由于该unshift()方法将一个或多个元素添加到数组的开头。


推荐阅读