我正在尝试创建 2 个正弦波并将它们加在一起以创建第三个。我可以很好地添加它们并将结果输出到控制台,但是每当我尝试将此值放入数组中时,我都会收到错误:
"Cannot read property '1' of undefined"
谁能解释一下我哪里出错了? Jsfiddle在这里:http://jsfiddle.net/YJqZz/
d1 = [];
d2 = [];
d3 = [];
// Sample the sine function
for (i = 0; i < 2 * Math.PI; i += 0.02) {
d1.push([i, 15+Math.sin(5*i)]);
d2.push([i, 10+Math.sin(4*i)]);
console.log(d1[i][1] + d2[i][1]);
d = d1[i][1] + d2[i][1];
console.log(d);
d3.push([i,d]);
}
最佳答案
要访问 dX
中的最后一个元素,请使用 dx[dX.length - 1]
。
你的i
在这里 float (0.02)。该值不是整数,而是转换为字符串。然后 Array 对象被解释为常规对象(类似于映射)。对象中没有键 "0.02"
,因此 dX["0.02"]
的计算结果为 undefined
。您无法访问undefined
,因此会出错。
关于javascript - 无法访问Javascript变量: undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17253922/