【发布时间】:2021-06-21 16:30:19
【问题描述】:
我是使用 javascript 的初学者。所以如果这个问题看起来很愚蠢,请不要对我大喊大叫。我被困住了,所以我问。 实际上,我正在做一个项目,我必须稍微操作数据,但我不知道为什么它不起作用。 这是我的代码
var data = [
{
_id: "5fb86715f916fb0011bfad61",
lastest_volume: 418,
modificationDate: "2020-11-21T01:02:13.673Z",
},
{
_id: "5fb9de1df916fb0011ca0ff3",
lastest_volume: 419,
modificationDate: "2020-11-22T03:42:21.107Z",
},
{
_id: "5fbb31e2f916fb0011d13555",
lastest_volume: 421,
modificationDate: "2020-11-23T03:52:02.960Z",
}
]
var re = /-/gi
for (let i in data) {
data[i].modificationDate = data[i].modificationDate.slice(0, 10);
data[i].modificationDate = data[i].modificationDate.replace(re, "");
let j = +i + 1;
data[i].lastest_volume = data[val].lastest_volume - data[i].lastest_volume;
}
console.log(data);
它给了我这个错误
data[i].lastest_volume = data[j].lastest_volume - data[i].lastest_volume;
^
TypeError: Cannot read property 'lastest_volume' of undefined
当我使用 i 时它可以工作,但如果我使用 j 而不是 i 则它不起作用
【问题讨论】:
-
在第三次迭代中,i=2 和 j =3,您正在尝试访问 data[3].latest_volume,其中数组的长度仅为 3,因此不会有 data[3] .
-
而且错误与发布的代码不一致。
-
@DaveNewton 他有一个错字(val 而不是 j),但根本问题是 Raghuraman Kesavan 指出的。
-
@nitrin0 是的,我知道(因此是“和”)——我的意思是发布的代码应该是有问题的代码,以避免追逐红鲱鱼。
-
@DaveNewton 很公平:)
标签: javascript arrays for-loop types