gpt4 book ai didi

javascript - 在 AngularJS 中为图形创建对象数组

转载 作者:行者123 更新时间:2023-11-30 05:38:32 26 4
gpt4 key购买 nike

我正在使用 n-3 个图表 ( http://n3-charts.github.io/ ) 在我的 Angular Web 应用程序中创建一些图表。以下是一些点的一些示例数据,其中有 3 个系列的数据值:

$scope.data = [
{x: new Date(1391448620668), current: 0, baseline: 0, original: 0, val_3: 0},
{x: new Date(1391535020668), current: 0.993, baseline: 3.894, original: 8.47, val_3: 14.347},
{x: new Date(1391621420668), current: 1.947, baseline: 7.174, original: 13.981, val_3: 19.991},
{x: new Date(1391707820668), current: 2.823, baseline: 9.32, original: 14.608, val_3: 13.509},
{x: new Date(1391794220668), current: 3.587, baseline: 9.996, original: 10.132, val_3: -1.167},
];

在我的代码中,我试图在相同的构造下创建它,如下所示:

$scope.addGraphData = function(){
var firstSubDate = $scope.FirstSubjectDoseDt;
var xValues = new Array(); // date data points
var cValues = new Array(); // current values
var bValues = new Array(); // baseline values
var oValues = new Array(); // original baseline values

for (var i = 0; i < $scope.currentData.length; i++) {
xValues[i] = new Date(firstSubDate+([i]*2628000000));
cValues[i] = $scope.currentData[i].currentValue;
bValues[i] = $scope.currentData[i].baselineValue;
oValues[i] = $scope.currentData[i].origValue;
};

for (var i = 0; i < $scope.currentData.length; i++) {
$scope.data[i] = {x: xValues[i], current: cValues[i], baseline: bValues[i], original: oValues[i]};
};
console.log("Graph Data: " + $scope.data);
};

但是$scope.data数组中的值是存在的,但是控制台给了我

图形数据:[object Object],[object Object],[object Object]

对于我的 3 个数据点,它什么也没绘制。我哪里出错了?

最佳答案

问题是图表无法调用数据集 $scope.data 如果其中一个值是 undefined

例如:

$scope.data = [
{x: new Date(1391448620668), current: undefined, baseline: 0, original: 0, val_3: 0},
{x: new Date(1391535020668), current: 0.993, baseline: 3.894, original: 8.47, val_3: 14.347}
];

我修改了我的函数以在创建 data 数组时更加高效,并添加了一个 OR 条件以在未定义的情况下将值绘制为 0。我还修复了日期错误。

$scope.addGraphData = function(){
var firstSubDate = $scope.FirstSubjectDoseDt;

$scope.data = [];

console.log("firstSubDate:", firstSubDate);

for (var i = 0; i < $scope.currentData.length; i++) {
$scope.data[i] = {
x: new Date( new Date(firstSubDate).getTime() + i*2628000000 ),
current: $scope.currentData[i].currentValue || 0,
baseline: $scope.currentData[i].baselineValue || 0,
original: $scope.currentData[i].origValue || 0
};

};

console.log("Monthly Graph Data:", $scope.data);

};

关于javascript - 在 AngularJS 中为图形创建对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22160241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com