我正在尝试将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谢谢。
答案 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
]);
因此,在第一种情况下,您将最终获得一个对象数组,而在第二种情况下,您将获得一个数组数组,或者将被调用的二维数组。
我希望这一切都有意义。如果没有,请随时询问。