javascript - 无法访问Javascript变量: undefined

标签 javascript arrays undefined

我正在尝试创建 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/

相关文章:

c++ - 未定义的类,无法从 main 到达我的 header

JavaScript 在函数外部定义变量

undefined - sequelize BulkCreate 无法读取未定义的属性 'set'

javascript - Sencha touch - 是否可以在客户端存储大型数据库

javascript - 在 React Native 中安排本地通知不起作用

arrays - 通过数组过滤器长度查询ElasticSearch

javascript - 如何按多列索引对多维数组进行排序

javascript - 使用 Waypoints 库滚动百分比

javascript - 如何使用 AngularJS 获取用户的邮政编码

javascript - 谁能教我下面给出的JS代码?