javascript - 将数组和键合并在一起以进行表输出

标签 javascript reactjs ecmascript-6

我正在将多个数据提取到数组中。现在我想将数组组合在一起并将它们与其符号键合并。 这个想法是将其输出到这样的表格中以比较不同的价格:

Name|Price1|Price2|Price3|
CAT |  10  |  20  |  15  |
DOG |  15  |  25  |  13  |
etc |..    |..

数组的格式如下:

数组 1:

[
  {
    "symbol": "CAT",
    "price": "10"
  },
  {
    "symbol": "DOG ",
    "price": "15"
  }
]

数组2:

[
  {
    "symbol": "CAT",
    "price": "20"
  },
  {
    "symbol": "DOG ",
    "price": "25"
  }
]

数组3:

[
  {
    "symbol": "CAT",
    "price": "15"
  },
  {
    "symbol": "DOG ",
    "price": "13"
  }
]

我的尝试:

var combine = Object.entries(array1, array2, array3)
      .map((k, v) => {
        Object.assign(
          { symbol: k.symbol },
          { price: v.price }
        )
      })

如何使用 ES6 实现此目的?

最佳答案

如果您只是寻找一种方法将此数据转换为更有用的格式,则可以使用以下函数:

{CAT: [10, 20, 15], DOG: [15, 25, 13]}

然后您可以使用它来创建您的表。如果您正在寻求将其转换为显示格式的帮助,请在此处进行说明或提出其他问题。

const makeTable = (...data) => data.reduce(
  (tbl, arr) => arr.reduce(
    (tbl, {price, symbol}) => 
      ((tbl[symbol] || (tbl[symbol] = [])).push(price), tbl),
    tbl
  ), {}
)

const arr1 = [{"price": "10", "symbol": "CAT"}, {"price": "15", "symbol": "DOG "}]
const arr2 = [{"price": "20", "symbol": "CAT"}, {"price": "25", "symbol": "DOG "}]
const arr3 = [{"price": "15", "symbol": "CAT"}, {"price": "13", "symbol": "DOG "}]

console.log(makeTable(arr1, arr2, arr3))

关于javascript - 将数组和键合并在一起以进行表输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50275295/

相关文章:

javascript - map 功能在 React 中不起作用

javascript - 如何打印到屏幕 - "console.log is not a function"

javascript - 类型错误 : Cannot read property 'avatar' of null

javascript - 将属性指令转换为 Angular 2 中的元素

javascript - 如何将值从父组件传递到子组件( react )

jquery - 大尺寸的 svg 无法正常工作如何在 React-pan-zoon-svg 中设置大 svg?

node.js - Meteor 1.3模块结构

javascript - Javascript 中的 block 作用域、函数作用域和局部作用域

javascript - 当子属性更改时如何防止重新创建列表?

reactjs - 为什么我可以访问 Redux 存储中的数组?