0

我需要在 Web 工作线程中更新我的 javascript 数组。我无法在 Web 工作线程中访问我的 javascript 数组。

我的代码是:

self.onmessage = function(event) {
var array = new Uint8Array(event.data);
var sum = 0;
var temparray = new Array();

for(var list = 0; list < array.length; list++ ){
    var temp = myMethod(array[list]); //some operation
    availableArray.push(temp);
}

 self.postMessage("success");
}   

我收到此错误: availableArrayis undefined availableArray.push(temp);

4

1 回答 1

1

您定义了 2 个变量,它们是数组(或类似数组的对象):var array = new Uint8Arrayvar temparray = new Array,但是在循环中您使用了一个未在任何地方声明的变量availableArray,我怀疑您想将该变量更改为temparray.
错误消息非常有意义:availableArray未在任何地方定义。您将它用作数组,并push在其上调用方法。但是,默认情况下,只要您使用尚未声明的 var,JS 就会为您创建一个新变量。未初始化变量的默认值当然是undefined. undefined没有push方法,因此错误。

不过,只是稍微说明一下:在 JSnew Array中其实是不鼓励的。最好使用数组文字表示法:

var temparray = [];

它更短安全。

于 2014-06-23T10:30:25.580 回答