for循环错误,for循环没有正确填充我的数组

时间:2014-05-08 20:58:29

标签: javascript for-loop javascript-objects

我正在使用javascript进行回归分析。我试图使用回归线从股票价格中获取ui(误差值)。我的回归线位于一个名为line的数组中。我的代码如下......

function getUi(n, data, line){

var u = new Array(n);
for(j=0; j<n; j++){
    u[j] = parseInt(data['quote'][j]['Adj_Close']) - line[j];
}
return u;

其中n是我回归的长度,数据是从雅虎财务给我的数组,而正如我之前提到的那样,行是我的回归线。到目前为止,我已经使用相同的过程来完成所有的计算(一个for循环来填充一个数组然后返回数组),除了这个之外它们都可以正常工作。如果我使用n = 200,它将返回180的数组。如果使用n = 100它将返回一个88的数组。这发生在n = 50和n = 30时,唯一正常工作的是n = 15。最奇怪的部分是让我的ui平方我使用这个代码...

function getuisq(n, ui){

var uisq = new Array(n);
for(j=0; j<n; j++){
    uisq[j] = ui[j] * ui[j];
}
return uisq;

它完美无缺。它使用未完全填充的ui数组,但它返回一个具有适当值的正确数组(如果n = 100,uisq [89]将具有ui [89] * ui [89]的值但是我的返回数组没有ui [89]的值。我已经尝试了很多东西,但它似乎只是起作用。如果你能提供帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不明白为什么你需要n。尝试更改为

function getUi(data, line){

var u = new Array(line.length);
for(var j=0; j<line.length; j++){
u[j] = parseInt(data['quote'][j]['Adj_Close']) - line[j];
}
 return u;
}

function getuisq(ui){

var uisq = new Array(ui.length);
for(var j=0; j<ui.length; j++){
uisq[j] = ui[j] * ui[j];
}
return uisq;
}