javascript - jsでオブジェクトを並べ替える方法はありますか?
仅有的幸福
仅有的幸福 2017-06-29 10:09:03
0
10
1067

json オブジェクトがバックグラウンドで返され、順序はすでに整理されています

しかし、このオブジェクトを配列をトラバースするように js to for in でトラバースすると、結果が元のオブジェクトと異なり、情報を確認したところ、js オブジェクトが順序付けされていないことがわかりました。 。では、このオブジェクトを順番に走査する方法はあるのでしょうか?または、元のオブジェクトのプロパティを順番に取得するにはどうすればよいでしょうか?

仅有的幸福
仅有的幸福

全員に返信(10)
为情所困

リーリー

いいねを押す +0
phpcn_u1582

リーリー

いいねを押す +0
巴扎黑

解決策はありません。並べ替える場合は、配列を使用する必要があります。またはキーの配列を使用します。

ES5 ではオブジェクト内の順序が指定されていないため、エンジンが異なると異なる場合があります。

ES6では、Object.getOwnPropertyNames()Object.getOwnPropertySymbols() 以及等效于两者结合的 Reflect.ownKeys()は一定の順序で出力されますが、それはあなたが望む答えではありません。

jsonの構造が数字と辞書の順に並んでいるような場合は、手動で並べ替えることができます。

いいねを押す +0
phpcn_u1582

1. ページの表示がバックエンドから返された並べ替え順序どおりであれば、並べ替える必要はなく、直接表示するだけでよいと思います。
2. 希望する注文がバックエンドの注文と異なる場合、商品がどのフィールドで並べ替えられて表示されるかによって異なります。次に、オブジェクト内のこのフィールドに基づいて並べ替えます。
欲しいものは必ず手に入るはずです。

いいねを押す +0
世界只因有你

リーリー

いいねを押す +0
过去多啦不再A梦

json オブジェクトには順序がないため、「事前に配置された順序」は実際には存在しません。
フロントエンドがキー名に基づいて並べ替えたい場合は、まずキー名を取り出し、並べ替えてからコンテンツを取得します。

いいねを押す +0
仅有的幸福

バックグラウンドはソートされたデータを返すため、ajax を使用してデータ (dataType: json) をリクエストする場合は、データを受け取った後、それを直接トラバースしてテンプレートに入力するだけです。順番が間違っていたらバックグラウンドで取得したデータが間違っているような気がします

いいねを押す +0
代言

リーリー リーリー

いいねを押す +0
过去多啦不再A梦

連続した値が必要な場合は、それらを配列に保存してから、json 属性に入れます。

いいねを押す +0
小葫芦

リーリー

このようにして、固定された順序で配列が返されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート