繁体   English   中英

将最后一个 JSON object 附加到数组中的前一个

[英]Appending last JSON object to the previous in array

我有一个 function 输出 json 对象的数组,其中最后一个在结构上是唯一的:

// multi
[
  { "min": 10, "max": 200, "sum": 580, "avg": 72.5 },
  { "min": 10, "max": 470, "sum": 8300, "avg": 103.75 },
  { "largest": 470 }
]

// single
[
  { "min": 20, "max": 190, "sum": 270, "avg": 90 },
  { "largest": 190 }
]

是否可以将 append 最后一部分{ "largest": n }放到数组中的其他对象上?

所以 output 将是:

// multi
[ { "min": 10, "max": 200, "sum": 580, "avg": 72.5,    "largest": 470 },
  { "min": 10, "max": 470, "sum": 8300, "avg": 103.75, "largest": 470 }
]

// single
[
  { "min": 20, "max": 190, "sum": 270, "avg": 90, "largest": 190 }
]

这是输出上述代码片段的链接

对数组进行切片以省略最后一个条目,然后将 map 每个条目合并到最后一个条目中

 function mergeLastEntry(arr) { const last = arr[arr.length - 1] // get the last entry // map each object (except the last) to merge in the `last` object return arr.slice(0, -1).map(o => ({...o, ...last })) } const multi =[{"min":10,"max":200,"sum":580,"avg":72.5},{"min":10,"max":470,"sum":8300,"avg":103.75},{"largest":470}] const single = [{"min":20,"max":190,"sum":270,"avg":90},{"largest":190}] console.log("multi", mergeLastEntry(multi)) console.log("single", mergeLastEntry(single))
 .as-console-wrapper { max-height: 100%;important; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM