我是javascript新手,我正在尝试一些数据来了解数组。不幸的是,我收到错误消息
“错误:TypeError:undefined不是Java中的对象 脚本(评估'dateArray [count] = dateInput [i]')“
我在做什么错了?
var dateInput = ["18-Sep-2018", "19-Sep-2018", "20-Sep-2018", "21-Sep-2018", "22-Sep-2018"];
var msInput = [86.69, 86.69, 86.76, 86.86, 86.97];
var hsdInput = [79.58, 79.58, 79.58, 79.58, 79.58];
var startDate, endDate, count;
var dateArray, msArray, hsdArray = new Array();
count = 0;
startDate = "18-Sep-2018";
endDate = "21-Sep-2018";
function createArray() {
for (i = 0; i < dateInput.length; i = i + 1) {
if (dateInput[i] >= startDate && dateInput[i] <= endDate) {
dateArray[count] = dateInput[i];
count = count + 1;
}
}
}
createArray();
console.log(msArray);
答案 0 :(得分:1)
您应该这样写:
var dateArray = [], msArray = [], hsdArray = [];
因为在var dateArray, msArray, hsdArray = new Array();
中
dateArray和msArray未定义
答案 1 :(得分:1)
问题是您尚未初始化dateArray
变量。
var dateArray = new Array(), // <-- initialize this with new Array() or []
msArray = new Array(), // <-- Might wanna initialize this too
hsdArray = new Array();
答案 2 :(得分:0)
错误是不言自明的,您试图将undefined视为对象,这意味着您正在执行
之类的操作undefined[key] = 'something'
OR
undefined.key
在您的代码中,问题出在以下一行。
var dateArray, msArray, hsdArray = new Array();
此处dateArray和msArray未定义。更改为
var dateArray = [], msArray = [], hsdArray = [];
OR
var dateArray = new Array(), msArray = new Array(), hsdArray = new Array();
OR(为避免将来出现此类混乱,请分别声明var)
var dateArray = new Array();
var msArray = new Array();
var hsdArray = new Array();