我尝试将新值添加到预定义的对象数组中,如下所示:
$scope.chartConfig.series.push(
[{
name: "Brands",
colorByPoint: true,
data: []
}]
);
我想向data
添加一个新的数组值,但仍然失败。我试过了:
$scope.todayChartConfig.series['data'] = [];
$scope.todayChartConfig.series['data'].push(
{
name: "Internet Explorer",
y: 56.33
},
{
name: "Chrome",
y: 30.12
}
);
但是它附加到一个新对象而不是与当前数据数组结合。
我的期望是:
[{
name: "Brands",
colorByPoint: true,
data: [
{
name: "Internet Explorer",
y: 56.33
},
{
name: "Chrome",
y: 30.12
}
]
}]
我怎样才能做到这一点?
答案 0 :(得分:2)
第一个问题是todayChartConfig.series
是一个数组,因此您应该追加$scope.todayChartConfig.series[0]
。
第二个问题是你需要单独追加对象。 (不正确。请参阅下面的编辑)
所以,这应该有效:
$scope.todayChartConfig.series[0]['data']
.push({
name: "Internet Explorer",
y: 56.33
}).push({
name: "Chrome",
y: 30.12
});
编辑:您还可以将所有对象追加在一起(请参阅下面的@ slebetman评论)。所以,这也有效
$scope.todayChartConfig.series[0]['data']
.push({
name: "Internet Explorer",
y: 56.33
},
{
name: "Chrome",
y: 30.12
});
答案 1 :(得分:2)
使用您当前的数据结构应该是:
$scope.todayChartConfig.series[0][0].data.push(
{
name: "Internet Explorer",
y: 56.33
},
{
name: "Chrome",
y: 30.12
}
);
哪个应该有效,因为:
$scope.chartConfig.series.push(
[{
name: "Brands",
colorByPoint: true,
data: []
}]
);
将一个对象数组推入一个数组。
但是,如果上面的代码是拼写错误,你真正想要的是:
$scope.chartConfig.series.push(
{
name: "Brands",
colorByPoint: true,
data: []
}
);
然后它应该是:
$scope.todayChartConfig.series[0].data.push(
{
name: "Internet Explorer",
y: 56.33
},
{
name: "Chrome",
y: 30.12
}
);
答案 2 :(得分:1)
您的原始数组是$ scope.chartConig.series,然后您将推送到$ scope.todayChartConfig.series。你的问题是你没有推进正确的阵列。
你需要这样做:
$scope.chartConfig.series['data'] = [];
$scope.chartConfig.series['data'].push(
{
name: "Internet Explorer",
y: 56.33
},
{
name: "Chrome",
y: 30.12
}
);
要执行您想要执行的操作,请参阅此jsFiddle