Javascript 向JS多维对象添加新数据

Javascript 向JS多维对象添加新数据,javascript,object,Javascript,Object,我在reducer文件中的react redux应用程序中使用了一个对象 tradings: { 'buy': { data: [] }, 'sell': { data: [] }, 'total': { data: [] } }, 所以,每当我得到一个新的数据集,我想把它放入任何对象的数据数组中,假设我得到了buy和数

我在reducer文件中的react redux应用程序中使用了一个对象

tradings: {
        'buy': {
            data: []
        },
        'sell': {
            data: []
        },
        'total': {
            data: []
        }
    },

所以,每当我得到一个新的数据集,我想把它放入任何对象的数据数组中,假设我得到了
buy
和数据:
[time:234234,amount:0.0123]
。那么我的新tradings对象将如下所示:

tradings: {
        'buy': {
            data: [[time:234234, amount: 0.0123 ], ....]
        },
        'sell': {
            data: []
        },
        'total': {
            data: []
        }
    },

如何将数组导入对象中的数组?

假设您有以下对象:

tradings = {
        'buy': {
            data: []
        },
        'sell': {
            data: []
        },
        'total': {
            data: []
        }
    }
您收到的数据是:

data = {buy: {time:234234, amount: 0.0123 }}
您首先需要抓取
数据
对象中的键,然后将其推送到
交易
对象中所需的数组,如下所示:

key = Object.keys(data)[0];
tradings[key].data.push(data[key]);
小提琴:

要将数组添加到该数组中, 或者在某处创建数组并通过javascript添加:

tradings["buy"].data =  YOUR ARRAY HERE 

array1.concat(array2)
tradings.buy.data.push(你的数据)
交易[key].data.push(你的数据)
其中
是字符串var
[时间:234234,金额:0.0123]
在JS中不是有效数组。如果您想要像
{time:234234,amount:0.0123}
这样的键值对,那么它应该是一个对象。为什么不使用
Array.push()
btw?可能使用
switch/case
根据买入/卖出类型进行操作?
push
在这里不能使用,除非您以前复制过,因为这个问题与您需要注意的redux相关mutablity@CodeManiac你说得对。也许OP可以用来复制对象,因为它包含基元值
tradings.buy.data=[…tradings.buy.data,newData]
可能会有所帮助,从下一次开始?这是一个通用的解决方案,适用于实际存在密钥的所有情况。只要确保您的数据结构正确,这应该始终有效。检查我的小提琴。
tradings["buy"].data =  YOUR ARRAY HERE