別の配列内にネストされた配列の中に押し込まspecials
と呼ばれますlease_payment
プロパティが空の場合その場合、配列からその特定のオブジェクトをスプライスし、tempObj
という新しいオブジェクトに格納し、tempArray
という新しい配列にプッシュします。私がスプライシングする理由は、オブジェクトの配列を最初にlease_payment
で昇順に並べ替える必要があるからです。リース料がない場合は、残りのオブジェクトをprice
で昇順に並べ替える必要があります。ただし、の注文後に価格の注文はにする必要があります。以下を参照してください:オブジェクトは、各オブジェクトはこのように見ていると、私はオブジェクトの配列を持っている
if (specials[i].lease_payment == "") {
tempObj = specials.splice(i, 1);
tempArray.push(tempObj);
} else {
// else just assume they're all lease offers and sort by lease payment
specials.sort(function(a, b) {
return a.lease_payment - b.lease_payment
});
}
私はその新しい配列tempArray
は1つのオブジェクト、または複数を持っているかどうかを確認します。 1つしかない場合、すぐにそれをメインのspecials
アレイに戻します。ここでアレイは背面にあります。それを比較して順序を決める別の目的はありません。複数のオブジェクトがある場合は、昇順の価格に基づいてそれらのオブジェクトの順序を変更し、オブジェクトをオブジェクトとして表示する必要があるため、配列を個別にspecials
配列にプッシュします。下記参照。起こっている何
if (tempArray.length == 1) {
specials.push({tempArray});
} // else just sort the temp array by ascending price, push into main specials later
else if (tempArray.length > 1) {
tempArray.sort(function(a, b) {
return a.price - b.price
});
// grabs each individual object within temp array and pushes one at a time into main specials
for (i = 0; i < tempArray.length; i++) {
specials.push(tempArray[i]);
}
}
私はバックspecials
配列にオブジェクトを押すたびに、このスクリーンショットで見られるように、いずれの場合において、それは、別のアレイ内にネストされていることである:この場合
、 5つのスペシャルオブジェクトのうちの2つが取り出され、ソートされ、元に戻されました。しかし、配列内にネストされています。
何か不足しているか間違っていますか?どんな助けもありがとう。
、 –
あなたは、コンパクトな方法でいくつかのデータと希望ソート結果を追加することができます。 –
は空の文字列 'lease_payment'であり、数字は文字列か文字列で、文字はいくつか?いくつかの例を挙げてデータを追加してください。 –