2017-05-16 16 views
0

いくつかの値を含むRESTエンドポイントからオブジェクトを受け取ります。データを正しく処理してアクセスしましたが、array.pushを使用して空の配列に入れます。ロギング時にArray.pushが正しくソートされない

しかし、配列は決して正しくソートされません。何がありますか?

いくつかのサンプルコード:

let high = data.High; 
    let medium = data.Medium; 
    let low = data.Low; 
    let exampleArr = []; 

    exampleArr.push(
     { 
      high, 
      medium, 
      low 
     } 
    ); 
    console.log(exampleArr) 

コンソールの出力が一貫している:

high: object 
low: object 
medium: object 

それぞれにネストされた情報が目的であるが、それはソートを及ぼしてはなりませんか?

+0

どのような並べ替えについて話していますか?オブジェクトキーのソートはありません –

+0

オブジェクトは、キーと値のペアの順序付けられたコレクションではありません。配列は順序付けされているので、別のオブジェクトをその配列に挿入すると、このオブジェクトは2番目の場所に配置されます。しかし、オブジェクトのプロパティ自体はデザインによって順序付けされていません。 – wostex

+0

私はそれを得ます。しかし、私はそれらを配列にプッシュしています。キー値をソートするべきではありませんか?または、私は高、中、低のそれぞれを最初に個々の配列に変換し、それら3つをすべて含む配列にプッシュする必要がありますか? – cbll

答えて

3

1つのアイテム(3つのキーを持つオブジェクト)を配列に追加するだけなので、この時点では何もソートできません。より多くのオブジェクトを追加する場合は、オブジェクトとしてキーに基づいてオブジェクトをソートするためのパラメータとしてcompare関数を使用してarray.sortを使用できます。

0

他の人からも言われたように、アレイにオブジェクトを1つだけ追加しています。さらに、console.logは、挿入順序ではなくアルファベット順に単一のオブジェクトのフィールドを並べ替えます。したがって、あなたは高い、低い、中程度のものを見ます。

関連する問題