簡體   English   中英

如何在JSON對象中獲得兩個數字之間的最大差

[英]How to get highest difference between two numbers in a JSON object

我正在與NodeJS一起在網站上創建“特色產品”小部件。 我有一個帶有SKUpricesale_price的JSON對象。 獲得折扣最高(價格與sale_price之間的差異)的商品的SKU的最佳方法是什么?

我嘗試通過遍歷項目並找到price和sale_price之間的差異,將結果推送到數組然后獲得最大值的方法來進行此操作,但此時我無法獲取SKU。

我擁有的JSON對象的示例:

{ "item_number":12341231, "price":"250", "sale_price":"219.99"},
{ "item_number":12341232, "price":"210", "sale_price":"209.99"},
{ "item_number":12341233, "price":"20", "sale_price":"12.99"},
{ "item_number":12341234, "price":"150", "sale_price":"19.99"},
{ "item_number":12341235, "price":"60", "sale_price":"29.99"},
{ "item_number":12341236, "price":"10", "sale_price":"5.99"}
];

例如,程序將返回1231234作為特色商品的SKU,因為折扣約為130美元。

我只想要一個快速的解決方案,不用擔心性能。

您可以通過一個循環來簡化數組,並選擇具有最大增量的數組。

 var array = [{ item_number: 12341231, price: "250", sale_price: "219.99" }, { item_number: 12341232, price: "210", sale_price: "209.99" }, { item_number: 12341233, price: "20", sale_price: "12.99" }, { item_number: 12341234, price: "150", sale_price: "19.99" }, { item_number: 12341235, price: "60", sale_price: "29.99" }, { item_number: 12341236, price: "10", sale_price: "5.99" }], result = array.reduce((a, b) => a.price - a.sale_price > b.price - b.sale_price ? a : b); console.log(result); 

如果性能不是問題,則可以按降序對產品進行排序,然后從排序結果中獲得第一個產品:

 const data = [ { "item_number":12341231, "price":"250", "sale_price":"219.99"}, { "item_number":12341232, "price":"210", "sale_price":"209.99"}, { "item_number":12341233, "price":"20", "sale_price":"12.99"}, { "item_number":12341234, "price":"150", "sale_price":"19.99"}, { "item_number":12341235, "price":"60", "sale_price":"29.99"}, { "item_number":12341236, "price":"10", "sale_price":"5.99"} ]; const maxDiffProduct = data.sort((a, b) => (b.price - b.sale_price) - (a.price - a.sale_price))[0]; console.log(maxDiffProduct.item_number); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM