javascript - 基于 Javascript 中的维度值对 JSON 数组进行排名
问题描述
我有一组 Javascript 对象。需要根据“cr_sales_value_usd”对给定时间段内每个公司的所有国家/地区进行排名。排名从 1 开始,并针对特定公司持续一段时间。为新公司或不同的时间范围提供新的排名。
此外,我们可能会遇到数据中可能不存在“公司”的情况。在这种情况下,排名完全基于时间。因此,现在我们根据特定时间范围内的“cr_sales_value_usd”对不同的运营国家进行排名。
[
{
"cr_sales_value_usd":160276,
"operating_country":"UK",
"corporation":"ZERIA SHINYAKU KOG",
"rank":null,
"timestamp":"2020-01-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":2745,
"operating_country":"Norway",
"corporation":"ZERIA SHINYAKU KOG",
"rank":null,
"timestamp":"2020-01-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":2037,
"operating_country":"Ireland",
"corporation":"ZERIA SHINYAKU KOG",
"rank":null,
"timestamp":"2020-01-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":32411301,
"operating_country":"Germany",
"corporation":"ZENTIVA",
"rank":null,
"timestamp":"2020-01-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":470194,
"operating_country":"Greece",
"corporation":"ZENTIVA",
"rank":null,
"timestamp":"2020-01-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":214375,
"operating_country":"Slovakia",
"corporation":"ZENTIVA",
"rank":null,
"timestamp":"2020-01-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":2138,
"operating_country":"Hungary",
"corporation":"ZENTIVA",
"rank":null,
"timestamp":"2020-02-01T00:00:00.000Z"
},
{
"cr_sales_value_usd":242,
"operating_country":"Norway",
"corporation":"ZENTIVA",
"rank":null,
"timestamp":"2020-02-01T00:00:00.000Z"
}
]
我可以想到一个复杂的 for 循环类型的代码,但正在寻找一个更清洁的解决方案。谢谢
解决方案
因此,如果我理解正确,您想根据cr_sales_value_usd
键的值对数组中的对象进行排序。
如果是这样,这应该可以解决问题:
arr.sort((a, b) => a.cr_sales_value_usd - b.cr_sales_value_usd);
所以只需申请
sort((a, b) => a.cr_sales_value_usd - b.cr_sales_value_usd);
在对象数组上。
推荐阅读
- c# - ASP.NET Core Unobtrusive Client Side Validation Form onsubmit 即使在验证失败时也会触发
- firebase - 角度Firebase数据订阅和获取错误
- ruby-on-rails - Docker Ignore 不适用于 docker compose 和我的文件结构
- html - 如何根据 CSS 将两个 div 居中?
- c - 为什么我的用户定义函数在没有 return 语句的情况下工作?
- python - 当我尝试为 protobuf 生成文件时,出现错误 ModuleNotFoundError
- sql - 从 datetimeoffset 到 datetime
- php - 当产品在 Woocommerce 中缺货时显示“缺货”标签
- c# - 是否有实际的概念证明示例或教程如何使 2 台计算机连接在一起以传输音频?
- linux - Arduino ESP8266:找不到 pyhon 可执行文件?