【发布时间】:2022-02-15 21:42:55
【问题描述】:
我有 3 个或更多数组,它们根据重量 (w) 断点显示价格 (p),每个数组 (i) 都有唯一标识符,如下所示。
var arr1 = [{w:1,p:10,i:"car1"},{w:2,p:15,i:"car1"},{w:3,p:21,i:"car1"}]
var arr2 = [{w:1,p:12,i:"car2"},{w:2,p:13,i:"car2"},{w:3,p:22,i:"car2"}]
var arr3 = [{w:1,p:9,i:"car3"},{w:2,p:12,i:"car3"},{w:3,p:33,i:"car3"}]
我想生成基于最便宜、第二便宜、第三便宜等的“价格表”数组。这样的
var cheap1 = [{w:1,p:9,i:"car3"},{w:2,p:12,i:"car3"},{w:3,p:21,i:"car1"}]
var cheap2 = [{w:1,p:10,i:"car1"},{w:2,p:13,i:"car2"},{w:3,p:22,i:"car2"}]
var cheap3 = [{w:1,p:12,i:"car2"},{w:2,p:15,i:"car1"},{w:3,p:33,i:"car3"}]
产生这种输出的最快方法是什么。
我尝试将它们合并到一个数组中,然后将它们排序,然后循环遍历数组并根据具有 (w) 值的对象的索引是否等于前一个 (w) 值将对象推送到新数组中,但它就是行不通,我似乎找不到解决这个问题的方法。
我在多个 for 循环中尝试了多个 if then 语句,结果成功了,但问题是我可能有大约 20 个数组要比较,而 if 语句不可行。
感谢您的帮助!
【问题讨论】:
-
欢迎来到 Stack Overflow!访问help center,使用tour 了解内容和How to Ask。如果您遇到困难,请发布您尝试的最小可重现示例,并使用
[<>]sn-p 编辑器记录输入和预期输出。
标签: javascript node.js arrays sorting filtering