1

我真的不确定如何描述我正在尝试做的事情。我正在尝试创建一个 react-table 组件,其中我的数据以某种方式组织。

假设我有一个这样的对象列表:

{ id: '887SYEP',
    client: 'CS',
    side: 'S',
    price: 85.8125,
    qty: 9866000,
    id: '8a59875bdaca5f886c5e7bdc42bb753b78cbe59d' }

请参阅所附图片。如果“side”道具是“B”,那么价格和相关数据就是出价数据,如果它的“S”那么它的出价数据。每个对象都是一个股票报价。但是我想以这样的方式订购它,使表格看起来像这样,其中最高的出价和报价位于顶部:

理想桌的形象

该数据在一行中,尽管它有两个单独的引用对象。如果其“side”属性为“S”类型,则相应的“client”和“price”位于左侧,如果其“B”(买方/卖方)位于右侧。有没有办法使用一张桌子来实现这一点,还是我需要两张?买入价和卖出价的相关性仅在于其相同的股票以及用户查看每个最高价格的方式。

4

1 回答 1

0

首先你应该过滤买家和卖家

let buyers = orders.filter(obj => obj.side === "B")
let sellers = orders.filter(obj => obj.side === "S")

然后按价格排序

buyers.sort((a,b) => a.price < b.price)
sellers.sort((a,b) => a.price > b.price)

为简单起见,假设两个数组的长度相同。将它们结合起来:

let orders = []
for (let index in buyers) {
    let {client: BClient, qty: BQty, price: Bid} = buyers[index]
    let {client: SClient, qty: SQty, price: Offer} = sellers[index] 
    orders.push({
        BClient,
        BQty,
        Bid,
        Offer,
        SQty,
        SClient
    })
}

然后显示orders

于 2018-06-22T23:41:10.953 回答