嵌套数组由其他日期数组在javascript中升序更改[关闭]
Posted
技术标签:
【中文标题】嵌套数组由其他日期数组在javascript中升序更改[关闭]【英文标题】:Nested array change by other date array ascending in javascript [closed] 【发布时间】:2022-01-18 03:35:58 【问题描述】:我有这个数组示例。
[
country: "Ukraina"
date: [2021-10-30, 2021-10-15, 2021-09-20, 2021-11-15]
id: 1
price: [1.9600000381469727, 2.0299999713897705, 2.1500000953674316, 1.840000033378601]
product: "Uzum"
volume: 1
country: "Korea"
date: [2021-11-15, 2021-10-30, 2021-10-15, 2021-09-20]
id: 2
price: [11.789999961853027, 10.25, 13.319999694824219, null]
product: "Uzum"
volume: 1
country: "Rossiya"
date: [2021-11-15, 2021-10-30, 2021-10-15, 2021-09-20]
id: 3
price: [2.160000858306885, 2.2100000381469727, 1.7699999809265137, null]
product: "Uzum"
volume: 1
]
嵌套数组价格按日期数组元素升序变化。如何解决这个问题。有哪些算法可用?
country: "Ukraina"
date: [2021-09-20, 2021-10-15, 2021-10-30, 2021-11-15]
id: 1
price: [ 2.1500000953674316, 2.0299999713897705, 1.9600000381469727, 1.840000033378601]
product: "Uzum"
volume: 1
【问题讨论】:
我不明白你到底想做什么,但我可以告诉你,只要你没有将date
和 price
转换为实际数组,它就不会工作.目前它们的值是string
。
您的 date
和 price
属性不是数组。它们是 JSON。虽然可以解析,但最好还是从这个数据结构的源头解决。
@trincot 。对不起。问题不是日期 JSON。问题是排序相对 vy 日期优势
在移除 JSON 的更新后,您不再有日期,因为这些是数字减法。
【参考方案1】:
抛开数据格式,您可以使用自定义排序比较函数与另一个数组进行比较。将数据映射到可让您跟踪索引的表单,然后使用该索引来引用另一个数组。
const data =
arr1: [5, 1, 8, 9, 4],
arr2: [9, 8, 7, 6, 5]
data.arr2 = data.arr2
.map((d, i) => return i: i, val: d )
.sort((a, b) => data.arr1[a.i] - data.arr1[b.i])
.map(d => d.val)
data.arr1.sort()
console.log(data)
不过,真的,我建议更改数据结构,以便关联日期和价格:
"country": "Ukraina",
"transactions": [
"date": "2021-10-30", "price": 1.9600000381469727 ,
"date": "2021-10-15", "price": 2.0299999713897705 ,
"date": "2021-09-20", "price": 2.1500000953674316 ,
"date": "2021-11-15", "price": 1.840000033378601
],
"id": 1,
"product": "Uzum",
"volume": 1
那你就可以了
data.transactions.sort((a, b) => new Date(a.date) - new Date(b.date))
价格也会随之而来。
【讨论】:
我可以使用这种结构,但它是预期的数据。因为 。此数据在 frontEnd 中使用 Chartjs。所以我选择了日期:[] 和价格:[],如果我使用你的结构。之后我会选择日期和价格给其他数组。以上是关于嵌套数组由其他日期数组在javascript中升序更改[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中将嵌套对象转换为对象数组? [关闭]