- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个包含化学元素及其发现年份的对象数组:
[
{"name": "hydrogen", "discovered": "1766"},
{"name": "boron", "discovered": "1808"},
{"name": "copper", "discovered": "9000 BCE"},
{"name": "argon", "discovered": "1894"},
{"name": "iron", "discovered": "before 5000 BCE"},
{"name": "phosphorus", "discovered": "1669"}
]
我想要的是根据发现的年份对数组进行排序,因此最古老的(在本例中为铜)应该是第一项,最近的(氩)应该是最后一项。
//It should look like this in the end:
[
{"name": "copper", "discovered": "9000 BCE"},
{"name": "iron", "discovered": "before 5000 BCE"},
{"name": "phosphorus", "discovered": "1669"},
{"name": "hydrogen", "discovered": "1766"},
{"name": "boron", "discovered": "1808"},
{"name": "argon", "discovered": "1894"}
]
我遇到的问题是“before”、“BCE”、“CE”等几个关键字,我不知道如何处理。
有什么解决方案可以解决这个问题吗?
最佳答案
9000 BCE
与 -9000
年相同。
您可以简单地将那些 BCE
(关键字 before
可能会被忽略,因为它无论如何都包含 BCE
)数据字符串视为 -
,如下:sort
函数中的年份
const data = [{name:"hydrogen",discovered:"1766"},{name:"boron",discovered:"1808"},{name:"copper",discovered:"9000 BCE"},{name:"argon",discovered:"1894"},{name:"iron",discovered:"before 5000 BCE"},{name:"phosphorus",discovered:"1669"}];
const res = data.sort((a, b) => {
const numA = (a.discovered.includes("BCE") ? -1 : 1)
* a.discovered.replace(/\D/g, '')
const numB = (b.discovered.includes("BCE") ? -1 : 1)
* b.discovered.replace(/\D/g, '')
return numA - numB
})
console.log(res)
.as-console-wrapper { max-height: 100% !important; top: 0; } /* ignore this */
关于javascript - 对年份数组进行排序(包括 BCE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68677916/
有一个包含化学元素及其发现年份的对象数组: [ {"name": "hydrogen", "discovered": "1766"}, {"name": "boron", "discove
我正在创建写书软件。 问题是,当用户创建发生在200 BCE [CE / BCE Wiki]年中的故事时,如何将该日期存储在SQLite中,以便我可以像普通的DateTime那样对其进行排序。 最佳答
日期范围包括 BC 日期这可能吗? 我想使用 SOLR 返回公元前 11000 年 (BC) 和公元前 9000 年 (BC) 之间的所有年份。 示例查询可能会将日期范围转换为 ISO 8601: q
我有一项任务是将日期从一种日历系统转换为另一种日历系统。 GregorianCalendar 的文档似乎建议您可以使用 BCE 年份的日期,但我不知道如何使用。如果我只是让年份为负数,即 Grego
我正在寻找一种在 HTML5 中语义表示日期的解决方案。根据new specifications现在可以给出没有日期、月份部分等的日期,例如: Last year This article还演示了一些
看起来像momentjs是目前最新、最强大的 JavaScript 日期库,但它不处理古代日期(或数百万和数十亿年前的日期)。 有什么可以做到的吗? 最佳答案 Any+Time™ DatePicker
我现在正在进行一个项目,该项目要求我允许用户在数据库中存储负日期。这些日期有可能跨越公元前数千年,最迟可追溯到“今天”。我参与过许多存储日期的项目,但它们都是相对较新的日期,而且没有一个是负数 (BC
我是一名优秀的程序员,十分优秀!