【发布时间】:2021-12-22 04:04:41
【问题描述】:
我有以下对象数组:
[{"id":0,"name":"Katy","age":22},
{"id":2,"name":"Lucy","age":12},
{"id":1,"name":"Jenna","age":45},
{"id":3,"name":"Ellie","age":34}]
我需要在对象 (PaymentCategory) 中添加另一个键,在其中添加具有最低 ID 的对象的键具有值“现金”、具有最高 ID 的键“卡”以及介于“支票”之间的所有对象;该数组还必须按 ID 排序。
因此需要的输出是:
[{"PaymentCategory":"Cash","id":0,"name":"Katy","age":22},
{"Payment Category":"Cheque","id":1,"name":"Jenna","age":45},
{"Payment Category":"Cheque","id":2,"name":"Lucy","age":12},
{"Payment Category":"Card","id":3,"name":"Ellie","age":34}]
我们怎样才能以最有效的方式实现这一结果,即最少的迭代次数,最高的性能?
这是我尝试过的:
const min = array.reduce((prev,curr)=> prev.id<curr.id?prev:curr)
const max = array.reduce((prev,curr)=> prev.id>curr.id?prev:curr)
min.PaymentCategory = "Cash"
max.PaymentCategory = "Credit"
const result =[min, max]
这个问题是:
- 我循环了两次,一次用于
max,一次用于min。 - 如何获得“中间”值?
【问题讨论】:
-
抱歉@Peter Seliger 迟到了回复和接受答案,我在这期间失去了帐户访问权限,因此无法查看/接受答案。感谢 Peter Seliger 和 Ali 花时间回答这个问题,我能够通过代码验证输出。
标签: javascript arrays conditional-statements mapping data-augmentation