我需要在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(温度);
答案 0 :(得分:1)
您定义了2个变量,这些变量是数组(或类似于数组的对象):var array = new Uint8Array
和var temparray = new Array
,但是在循环中您使用的是未在任何地方声明的变量availableArray
,我怀疑你想把这个变量改为temparray
错误消息非常有意义:availableArray
未在任何地方定义。您将它用作数组,并在其上调用push
方法。但是,默认情况下,只要您使用尚未声明的var,JS就会为您创建一个新变量。当然,非初始化变量的默认值为undefined
。 undefined
没有push
方法,因此错误。
但是,只是略微说一句:在JS new Array
中实际上是不鼓励的。最好使用数组文字表示法:
var temparray = [];
它更短且更安全。