json オブジェクトがバックグラウンドで返され、順序はすでに整理されています
しかし、このオブジェクトを配列をトラバースするように js to for in でトラバースすると、結果が元のオブジェクトと異なり、情報を確認したところ、js オブジェクトが順序付けされていないことがわかりました。 。では、このオブジェクトを順番に走査する方法はあるのでしょうか?または、元のオブジェクトのプロパティを順番に取得するにはどうすればよいでしょうか?
巴扎黑2017-06-29 10:11:03
解決策はありません。並べ替える場合は、配列を使用する必要があります。またはキーの配列を使用します。
ES5 ではオブジェクト内の順序が指定されていないため、エンジンが異なると異なる場合があります。
ES6では、Object.getOwnPropertyNames()
和Object.getOwnPropertySymbols()
以及等效于两者结合的 Reflect.ownKeys()
は一定の順序で出力されますが、それはあなたが望む答えではありません。
jsonの構造が数字と辞書の順に並んでいるような場合は、手動で並べ替えることができます。
phpcn_u15822017-06-29 10:11:03
1. ページの表示がバックエンドから返された並べ替え順序どおりであれば、並べ替える必要はなく、直接表示するだけでよいと思います。
2. 希望する注文がバックエンドの注文と異なる場合、商品がどのフィールドで並べ替えられて表示されるかによって異なります。次に、オブジェクト内のこのフィールドに基づいて並べ替えます。
欲しいものは必ず手に入るはずです。
过去多啦不再A梦2017-06-29 10:11:03
json オブジェクトには順序がないため、「事前に配置された順序」は実際には存在しません。
フロントエンドがキー名に基づいて並べ替えたい場合は、まずキー名を取り出し、並べ替えてからコンテンツを取得します。
仅有的幸福2017-06-29 10:11:03
バックグラウンドはソートされたデータを返すため、ajax を使用してデータ (dataType: json) をリクエストする場合は、データを受け取った後、それを直接トラバースしてテンプレートに入力するだけです。順番が間違っていたらバックグラウンドで取得したデータが間違っているような気がします