2017-11-05 6 views
0

私はjsonオブジェクトを持っています。私はその順序を逆にしたいと思います。jqueryでjson orderを逆に

マイJSON:

var json = { 
     'car 1' : { 
      'brand' : 'Seat', 
      'model' : 'Ibiza', 
      'equip' : { 
       'n1' : 'vidros electricos', 
       'n2' : 'fecho central', 
       'n3' : 'dirercção assistida' 
      } 
     }, 
     'car 2' : { 
      'brand' : 'Volkswagen', 
      'model' : 'Golf', 
      'equip' : { 
       'n1' : 'vidros electricos', 
       'n2' : 'fecho central', 
       'n3' : 'dirercção assistida', 
       'n4' : 'abs' 
      } 
     }, 
     (...) 
    } 

私が試してみた:

$.each(json.reverse(), function(index, value) {...} 

が、これは私にエラーを与えます。これどうやってするの?

tksです。

+0

これらのリンクはあなたを助けるかもしれません。 1. https://stackoverflow.com/questions/21702805/reverse-the-json-array-stored-in-javascript-variable 2. https://stackoverflow.com/questions/17556539/parse-json -list-in-reverse-order –

+0

あなたはjson全体を逆にする必要があります –

答えて

1

reverse()は、ObjectではなくArrayの関数であるため、機能しません。あなたのオブジェクトを配列に変換するとうまくいくはずです。

var json = { 
 
    'car 1' : { 
 
\t 'brand' : 'Seat', 
 
\t 'model' : 'Ibiza', 
 
\t 'equip' : { 
 
\t \t 'n1' : 'vidros electricos', 
 
\t \t 'n2' : 'fecho central', 
 
\t \t 'n3' : 'dirercção assistida' 
 
\t } 
 
}, 
 
'car 2' : { 
 
\t 'brand' : 'Volkswagen', 
 
\t 'model' : 'Golf', 
 
\t 'equip' : { 
 
\t \t 'n1' : 'vidros electricos', 
 
\t \t 'n2' : 'fecho central', 
 
\t \t 'n3' : 'dirercção assistida', 
 
    \t \t \t 'n4' : 'abs' 
 
\t } 
 
} 
 
}; 
 
\t \t 
 
var jsonArr = Object.keys(json).map(function(key) { 
 
    return [key, json[key]]; 
 
}); 
 
\t \t 
 
jsonArr = jsonArr.reverse(); 
 
    
 
console.log(jsonArr[0]); // Will print car 2 
 
console.log(jsonArr[1]); // Will print car 1 
 
    
 
\t \t

0

オブジェクトのプロパティの順序は、インデックスベースではないため、元に戻すことはできません。配列はインデックスに基づいているため、逆転させることができます。