よろしくお願いします!
最新の注文商品が最初になるように、いくつかのオブジェクトを並べ替えようとしています。したがって、以下のデータを見ると、新しい注文は(新しいものから古いものへ)product2、product3、そしてproduct1のようになります。
{
"candyResponse": {
"product1": {
"displayName": "Bubble Gum",
"imageURL": "https://dummyimage.com/200x200/000/ffffff.png&text=prod1?$146$",
"orderDate": {
"time": "11/03/2018"
}
},
"product2": {
"displayName": "Chocolate",
"imageURL": "https://dummyimage.com/200x200/000/ffffff.png&text=prod2?$146$",
"orderDate": {
"time": "03/05/2015"
}
},
"product3": {
"displayName": "Mints",
"imageURL": "https://dummyimage.com/200x200/000/ffffff.png&text=prod3?$146$",
"orderDate": {
"time": "09/20/2017"
}
}
}
}
JavaScriptオブジェクトの配列の並べ替えからコードを微調整しましたが、成功しませんでした。3つの方法を試しました...
candyResponse.sort(function(a, b) {
return parseFloat(a.time) - parseFloat(b.time);
});
candyResponse.sort(function(a, b) {
return parseFloat(a.orderDate) - parseFloat(b.orderDate);
});
candyResponse.sort(function(a, b) {
return parseFloat(a.orderDate.time) - parseFloat(b.orderDate.time);
});
よろしくお願いします!
candyResponse
あるオブジェクトではなく、配列-オブジェクトのプロパティ名を確実にスペックごとに、注文されていない、あなたがそうしてもやった所望の挿入順にプロパティを持つ新しいオブジェクトを作成し、依存するものではありません。
代わりに配列を並べ替えます。
const candyResponse = {
"product1": {
"displayName": "Bubble Gum",
"imageURL": "https://dummyimage.com/200x200/000/ffffff.png&text=prod1?$146$",
"orderDate": {
"time": "11/03/2018"
}
},
"product2": {
"displayName": "Chocolate",
"imageURL": "https://dummyimage.com/200x200/000/ffffff.png&text=prod2?$146$",
"orderDate": {
"time": "03/05/2015"
}
},
"product3": {
"displayName": "Mints",
"imageURL": "https://dummyimage.com/200x200/000/ffffff.png&text=prod3?$146$",
"orderDate": {
"time": "09/20/2017"
}
}
};
const getTime = ([_, product]) => {
return new Date(product.orderDate.time);
};
const sortedCandyArr = Object.entries(candyResponse)
.sort((a, b) => getTime(b) - getTime(a));
console.log(sortedCandyArr);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加