将Json Data作为单个对象推送,而不是一个长数组

时间:2015-05-05 19:25:35

标签: javascript arrays json

我正在尝试将API中的数据推送到对象数组中。

我想要

myFXdata {[ccypair], [resistance], [support], [trend.src]},
         {[ccypair], [resistance], [support], [trend.src]},
         {[ccypair], [resistance], [support], [trend.src]},
         {[ccypair], [resistance], ...etc},

但是我得到了

myFXdata {[ccypair], [resistance], [support], [trend.src],
         [ccypair], [resistance], [support], [trend.src],
         [ccypair], [resistance], [support], [trend.src],
         [ccypair], [resistance], ...etc}

我的代码是

 var myFXdata = [];

 for (var i = 0; i < collection.length; i++){

    myFXData.push((collection[i].ccyPair),   (collection[i].resistance), (collection[i].support), (collection[i].trend.src));  
         }

    console.log(dailyfxTech)

我想我每次都需要推入一个新对象,但是

     myFXData.push({collection[i].ccyPair});

给出错误

SyntaxError: Unexpected token '['. Expected a ':' following the property name 'collection'.

有什么想法吗? Muchas谢谢。

1 个答案:

答案 0 :(得分:1)

您想要的输出是不可能的,因为它不是有效的js对象:

{[ccypair], [resistance], [support], [trend.src]}

该片段告诉我的是,您希望最终得到一个对象数组,其中每个对象包含4个属性,没有键,并且它们本身就是数组。这没有多大意义,js

中的对象需要键

您的代码段可能看起来像

{'pair': ccypair, 'resistance': resistance, 'support': support, 'src': trend.src}

如果阵列适用于您的情况,您也可以这样做:

[ccypair, resistance, support, trend.src]

取决于您选择的格式,将它们推到阵列上应该很容易

myFXData.push({
    pair: collection[i].ccyPair, 
    collection: collection[i].resistance, 
    support: collection[i].support, 
    src: collection[i].trend.src
});

myFXData.push([
    collection[i].ccyPair, 
    collection[i].resistance, 
    collection[i].support, 
    collection[i].trend.src
]);  

因此,在第一种情况下,您将最终获得一个对象数组,而在第二种情况下,您将获得一个数组数组,或者将被调用的二维数组。

我希望这一切都有意义。如果没有,请随时询问。